Проблема с масштабированием изображения продукта на странице сведений о продукте, когда раскрывающееся меню имеет область перекрытия с ним


Масштабирование работает нормально,

Но при наведении указателя мыши на раскрывающееся меню категории в область перекрытия изображения продукта и раскрывающегося меню масштабирование работает нормально, даже мышь все еще находится в раскрывающемся меню.

Пожалуйста, проверьте снимок захвата:

enter image description here

Author: TBS Mage, 2018-05-24

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" блока изображения, иначе масштабирование будет отображаться после выхода мыши из блока изображения.
Пожалуйста, добавьте приведенный выше код и дайте мне знать, если вам понадобится что-нибудь еще.

 19
Author: Nitin Vala, 2018-06-01 10:02:51

Для 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);
 8
Author: Aniket Prajapati, 2018-12-03 05:50:58

Я обновился до версии 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);
 6
Author: rudak, 2018-09-22 12:37:20

Похоже, это ошибка Магетно.

Проверьте Здесь.

Исправление было объединено с Lattest Magetno 2.2.4.

Если вы используете более старую версию, чем вы можете изменить приведенный ниже файл в качестве рабочего.

Lib/web/magnifier/magnifier.js

       $box.on('mousemove', onMousemove);
     _init($box, gOptions);

Ссылка:- Проверьте Этот коммит, который объединен с Magento 2.2.4

Update:- Если вы объедините этот PR, и это будет проблемой для вас. Его Похоже, что не работает, Исправляя одну Проблему, Перепутанную с другой. Делайте это на свой страх и риск!!!

 3
Author: TBS Mage, 2018-08-23 10:17:51

В последней версии вышеупомянутое решение все еще не работало, мне пришлось указать класс предварительного просмотра лупы специально так:

$box.on('mousemove', onMousemove);
$box.on('mouseleave', mouseleave);
function mouseleave(e) {
    onThumbLeave();
    isOverThumb = false;
    $('.magnifier-preview').addClass(MagnifyCls.magnifyHidden);
}
_init($box, customUserOptions);
 3
Author: user73198, 2018-11-01 00:01:21
$box.on('mousemove', onMousemove);
$box.on('mouseleave', mouseleave);
function mouseleave(e) {
   onThumbLeave();
   isOverThumb = false;
   $largeWrapper.addClass(MagnifyCls.magnifyHidden);
}
_init($box, gOptions);

Этот код работает нормально.

Спасибо,

 1
Author: Priya, 2018-05-31 05:03:05

Где вы можете найти оригинал magnifier.js? У нас есть эта проблема, и мы используем тему Ultimo. Однако приложение/дизайн/интерфейс/Infortis/ultimo - это то, как далеко мы продвинулись. Тогда, конечно, я могу создать веб/увеличитель/папки, но откуда взять правильный magnifier.js?

Кто-нибудь может привести хороший пример? Спасибо

 1
Author: Emile, 2018-11-16 17:22:39