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


9

Зум работает нормально,

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

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

введите описание изображения здесь


установите более высокий z-индекс для увеличения, это решит вашу проблему
Манодж Десвал

@ManojDeswal, меня пытались использовать z-index: 99999; но это не работает Можете ли вы предоставить мне правильные решения.
Майур Ратод

если у вас есть URL-адрес в Интернете, то я могу вам помочь
Манодж Десвал

Это нормально работает в моей локальной системе.
Майур Ратод

передайте свой онлайн URL, после проверки я могу сказать вам точное решение
Манодж Десвал

Ответы:


19

Вам нужно заменить код 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.5. Я сделал это изменение, очистил кэшированный, и он все еще не работает, как следует. Любые другие предложения?
Руди С.

Пожалуйста, выполните следующую команду в корневом каталоге magento. -> php bin / magento s: up -> php bin / magento s: d: c, дайте мне знать, если он не будет работать после выполнения команды выше
Nitin Vala

Это сработало! Текст с названия изображения все еще обрезает нижнюю часть, это то, с чем вы знакомы? Я надеялся, что исправление проблемы с наведением изображения также решит проблему с текстом изображения, но это кажется отдельным? Спасибо за вашу помощь и время, Нитин.
Руди С.

Да, оба вопроса разделены. Это уже обсуждалось на git hub github.com/magento/magento2/issues/15035 (см. Последние 3-4 комментария). Это может также быть решено в последнем выпуске magento.
Нитин Вала

Работает на 2.2.4
Джоэл Дейви

8

Для версии magento 2.2.6 замените код ниже в вашей теме. Путь к файлу lib / web / magnifier / magnifier.js Заменить в приложении / design / frontend / vendor / module / web

$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);

Спасибо, это работает!
Маниш Госвами

Спасибо. Это сработало ...
soofz

6

Я обновляюсь до v2.2.6, и он больше не работает, после этого
я редактирую код следующим образом:

 $box.on('mousemove', onMousemove);
    $box.on('mouseleave', mouseleave);
    function mouseleave(e) {
        onThumbLeave();
        isOverThumb = false;
        $(largeWrapper).addClass(MagnifyCls.magnifyHidden);
    }
    // _init($box, gOptions);
    _init($box, customUserOptions);

1
Я только что обновил до 2.2.6 и использовал этот код. Все еще не работает для меня какие-либо другие предложения? Спасибо. К вашему сведению, я использовал предыдущий патч, предложенный Nitin, без проблем.
Руди С.

Я редактирую код с помощью: $ (largeWrapper). ... какая у тебя ошибка?
Рудак

1
это решило мою проблему на 2.2.6 спасибо.
CDzWebDev

1
Это работает для меня 2.3
BartZalas

3

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

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

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

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

Библиотека / веб / лупа / magnifier.js

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

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

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


3

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

$box.on('mousemove', onMousemove);
$box.on('mouseleave', mouseleave);
function mouseleave(e) {
    onThumbLeave();
    isOverThumb = false;
    $('.magnifier-preview').addClass(MagnifyCls.magnifyHidden);
}
_init($box, customUserOptions);

Это не работает для меня на новой установке 2.3.0. Какие-либо предложения?
Руди С.

1
$box.on('mousemove', onMousemove);
$box.on('mouseleave', mouseleave);
function mouseleave(e) {
   onThumbLeave();
   isOverThumb = false;
   $largeWrapper.addClass(MagnifyCls.magnifyHidden);
}
_init($box, gOptions);

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

Спасибо,


1

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

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


Исходный файл magnifier.js находится в папке MagentoRoot / lib / web / magnifier /.
Нитин Вала
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.