Проблема с масштабированием изображения продукта на странице сведений о продукте, когда раскрывающееся меню имеет область перекрытия с ним
7 answers
Вам необходимо заменить код lib/web/magnifier/magnifier.js в вашей теме, как показано ниже.
$(document).on('mousemove', onMousemove);
_init($box, gOptions);
Замените его На.
$box.on('mousemove', onMousemove);
$box.on('mouseleave', mouseleave);
function mouseleave(e) {
onThumbLeave();
isOverThumb = false;
$largeWrapper.addClass(MagnifyCls.magnifyHidden);
}
_init($box, gOptions);
Нам нужно добавить функцию в событие "mouseleave" блока изображения, иначе масштабирование будет отображаться после выхода мыши из блока изображения.
Пожалуйста, добавьте приведенный выше код и дайте мне знать, если вам понадобится что-нибудь еще.
Для magento версии 2.2.6 замените приведенный ниже код в вашей теме. Путь к файлу lib/web/magnifier/magnifier.js Заменить в приложении/дизайне/интерфейсе/поставщике/модуле/Интернете
$box.on('mousemove', onMousemove);
_init($box, customUserOptions);
Замените его На.
$box.on('mousemove', onMousemove);
$box.on('mouseleave', mouseleave);
function mouseleave(e) {
onThumbLeave();
isOverThumb = false;
$magnifierPreview.addClass(MagnifyCls.magnifyHidden);
}
_init($box, customUserOptions);
Я обновился до версии 2.0, и после этого он больше не работает
Я редактирую код следующим образом, и он работает:
$box.on('mousemove', onMousemove);
$box.on('mouseleave', mouseleave);
function mouseleave(e) {
onThumbLeave();
isOverThumb = false;
$(largeWrapper).addClass(MagnifyCls.magnifyHidden);
}
// _init($box, gOptions);
_init($box, customUserOptions);
Похоже, это ошибка Магетно.
Проверьте Здесь.
Исправление было объединено с Lattest Magetno 2.2.4.
Если вы используете более старую версию, чем вы можете изменить приведенный ниже файл в качестве рабочего.
Lib/web/magnifier/magnifier.js
$box.on('mousemove', onMousemove);
_init($box, gOptions);
Ссылка:- Проверьте Этот коммит, который объединен с Magento 2.2.4
Update
:- Если вы объедините этот PR, и это будет проблемой для вас. Его Похоже, что не работает, Исправляя одну Проблему, Перепутанную с другой.
Делайте это на свой страх и риск!!!
В последней версии вышеупомянутое решение все еще не работало, мне пришлось указать класс предварительного просмотра лупы специально так:
$box.on('mousemove', onMousemove);
$box.on('mouseleave', mouseleave);
function mouseleave(e) {
onThumbLeave();
isOverThumb = false;
$('.magnifier-preview').addClass(MagnifyCls.magnifyHidden);
}
_init($box, customUserOptions);
$box.on('mousemove', onMousemove);
$box.on('mouseleave', mouseleave);
function mouseleave(e) {
onThumbLeave();
isOverThumb = false;
$largeWrapper.addClass(MagnifyCls.magnifyHidden);
}
_init($box, gOptions);
Этот код работает нормально.
Спасибо,
Где вы можете найти оригинал magnifier.js? У нас есть эта проблема, и мы используем тему Ultimo. Однако приложение/дизайн/интерфейс/Infortis/ultimo - это то, как далеко мы продвинулись. Тогда, конечно, я могу создать веб/увеличитель/папки, но откуда взять правильный magnifier.js?
Кто-нибудь может привести хороший пример? Спасибо