如何从1.9 RWD主题的产品详细信息页面中删除缩放


9

如何从Magento 1.9的rwd主题中删除缩放功能?

我可以用CSS删除它

div.zoomContainer {
  display: none;
}

但是我不认为这是最好的方法?最好将其从模板文件或xml中删除。

我试过编辑template / catalog / product / view / media.phtml,但没有运气。


不,这不是正确的方法,现在请看我的修改的最后答案。
Simbus82 2014年

Answers:


10

如其他答案之一所述,缩放功能始于in 文件的createZoom功能。ProductMediaManager/skin/frontend/rwd/default/js/app.js

因此,另一种选择是createZoom在此过程的稍后阶段通过JS 覆盖单个函数。

例如,如果要插入JS作为自己主题的一部分,则可以添加以下内容以覆盖对象中的createZoom函数ProductMediaManager

// ProductMediaManager is outside document.read scope
if (typeof ProductMediaManager !== 'undefined') {

  // Override image zoom in /skin/frontend/rwd/default/js/app.js
  // and prevent the zooming of images on hover
  ProductMediaManager.createZoom = function(image) { return; }

}

使用这种方法,您不必复制整个app.js文件。但是,必须确保在父主题的JS文件之后添加主题的JS。我发现这是一种更清洁的方法。


为我工作,但是请记住,覆盖不能太晚加载。我已经将其包装在一个准备好jQuery文档的观察器中,为时已晚,覆盖不做任何事情。取而代之的是,在加载自定义JS文件时,我不得不执行覆盖权限,因此我只是将其放置在jQuery文档就绪观察器的外部。
路易B.18年

15

创建文件/skin/frontend/rwd/default/js/app.js的替代(例如,在/skin/frontend/rwd/mystyle/js/app.js中)

评论这一行(default line: 649)

//image.elevateZoom();

刷新Magento缓存。


1
我进行了编辑,因为这是正确的方法。
Simbus82 2014年

2
稍微更好的解决方案可能是只return;createZoomimage.elevateZoom();调用所在的函数的开头添加一条语句。这样,客户端JavaScript甚至都不必首先执行。(仍然要先按照在本地主题中覆盖此文件的做法进行操作)
达伦·费尔顿

-3

打开/frontend/rwd/default/layout/catalog.xml<catalog_product_view>在行下面的部分注释中

<action method="addItem"><type>skin_js</type><script>js/lib/elevatezoom/jquery.elevateZoom-3.0.8.min.js</script></action>

谢谢,但是如果删除该js文件,我将无法再选择主图库区域的缩略图
Holly

禁用此功能不是正确的方法。
Simbus82 2014年

3
您绝不应修改/ app / design / frontend / rwd / default / layout /中的文件,或者/ app / design / frontend / base / default / layout /中的任何文件。这样做不遵循升级友好做法。布局更新应始终在主题内的“ local.xml”中进行。在local.xml中没有任何布局XML指令,这些指令不能被覆盖,修改,删除等。
达伦·费尔顿,2014年

这将引发错误,因为它无法找到elevatezoom
Tisch
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.