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


9

Зум працює добре,

Але при наведенні на спадне меню категорії на область перекриття зображення продукту та випадаючого меню масштабування працює нормально, навіть миша все ще знаходиться у спадному меню.

Перевірте фотографію захоплення:

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


встановивши більш високий z-індекс для збільшення, вирішить вашу проблему
Manoj Deswal

@ManojDeswal, я намагався використовувати z-індекс: 99999; але це не працює. Чи можете ви надати мені правильні рішення.
Mayur Rathod

якщо у вас є URL-адреса в Інтернеті, то я можу вам допомогти
Manoj Deswal

Це добре працює в моїй локальній системі.
Mayur Rathod

передайте свою Інтернет-адресу, після огляду я можу сказати точне рішення
Manoj Deswal

Відповіді:


19

Вам потрібно замінити код lib / web / luni / 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/isissue/15035( див. Останні 3-4 коментарі). Це також може бути вирішено в останньому випуску magento.
Нітін Вала

Працює для 2.2.4
Джоел Дейві

8

Для magento версії 2.2.6 замініть нижче код у своїй темі. Шлях до файлу lib / web / лупа / magnifier.js Замінити у програмі / дизайні / 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 і використав цей код. Ще не працює для мене жодна інша пропозиція? Дякую. FYI Я використовував попередній патч, запропонований Нітіном, без проблем.
Руді К.

Я редагую код за допомогою: $ (largeWrapper). ... у чому ваша помилка?
rudak

1
це вирішило мою проблему на 2.2.6 дякую.
CDzWebDev

1
Це працює для мене 2.3
BartZalas,

3

Схоже, це помилка Магетно.

Перевірте тут .

Виправлення було об'єднано з Lattest Magetno 2.2.4 .

Якщо ви використовуєте старішу версію, ви можете змінити файл нижче як робочий круг.

lib / web / лупа / magnifier.js

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

Довідка: - Перевірте цю комісію, яка об'єднана з Magento 2.2.4

Update: - Якщо ви з’єднаєте цей PR і тоді це буде проблемою масштабування для вас. Це не працює. Схоже, виправлення однієї проблеми зіпсовано з іншою. Робіть це на свій страх і ризик !!!


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. Однак додаток / дизайн / frontend / Infortis / ultimo - це як далеко ми дістаємось. Тоді, звичайно, я можу створити папки веб / лупи /, але звідки отримати потрібний magnifier.js?

Хтось хороший на прикладі? Дякую


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