Как убрать зум со страницы с описанием товара на тему 1.9 RWD

9

Как удалить функцию масштабирования из темы rwd в Magento 1.9?

Я могу удалить это с помощью CSS

div.zoomContainer {
  display: none;
}

Но я не думаю, что это лучший метод? Было бы лучше удалить его из файла шаблона или с помощью XML.

Я попытался отредактировать шаблон / каталог / product / view / media.phtml, но безуспешно.

падуб
источник
Нет, это не правильный метод, пока смотрите последний ответ с моей правкой.
Simbus82

Ответы:

10

Как уже упоминалось в одном из других ответов, функция масштабирования начинается в 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.
Луи Б.
15

Создайте переопределение файла /skin/frontend/rwd/default/js/app.js (например, в /skin/frontend/rwd/mystyle/js/app.js).

закомментируйте строку (default line: 649):

//image.elevateZoom();

Обновите кеш Magento.

user90047
источник
1
Я редактировал, потому что это правильный метод.
Simbus82
2
Немного лучшим решением может быть просто добавить return;оператор в самом начале этой createZoomфункции, в которой находится этот image.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>
WisdmLabs
источник
спасибо, но если удалить этот js-файл, я больше не могу выбирать миниатюры изображений для главной области галереи
Holly
Это неправильный способ отключить эту функцию.
Simbus82
3
Вы никогда не должны модифицировать файлы в / приложение / дизайн / интерфейс / RWD / по умолчанию / макет / или любой из файлов в / приложение / дизайн / интерфейс / базы / по умолчанию / макет / . Это не следует рекомендациям по обновлению. Обновления макета всегда должны быть сделаны в "local.xml" в вашей теме. В local.xml нет никаких инструкций макета XML, которые нельзя переопределить, изменить, удалить и т. Д.
Даррен Фелтон
Это приведет к ошибке, потому что не сможет найти elevatezoom
Tisch