Zoom działa dobrze,
Ale gdy najedziesz myszką na menu rozwijane kategorii na obszar nakładania się obrazu produktu i menu rozwijanego, Zoom działa normalnie, nawet mysz nadal znajduje się w menu rozwijanym.
Sprawdź zdjęcie przechwytywania:
Zoom działa dobrze,
Ale gdy najedziesz myszką na menu rozwijane kategorii na obszar nakładania się obrazu produktu i menu rozwijanego, Zoom działa normalnie, nawet mysz nadal znajduje się w menu rozwijanym.
Sprawdź zdjęcie przechwytywania:
Odpowiedzi:
Musisz zastąpić kod lib / web / magnifier / magnifier.js w swoim motywie, jak poniżej.
$(document).on('mousemove', onMousemove);
_init($box, gOptions);
Zamień na.
$box.on('mousemove', onMousemove);
$box.on('mouseleave', mouseleave);
function mouseleave(e) {
onThumbLeave();
isOverThumb = false;
$largeWrapper.addClass(MagnifyCls.magnifyHidden);
}
_init($box, gOptions);
Musimy dodać funkcję na zdarzeniu „blokowania myszy” bloku obrazu, w przeciwnym razie zoom wyświetli się po opuszczeniu myszy przez blok obrazu.
Dodaj powyższy kod i daj mi znać, jeśli potrzebujesz czegoś jeszcze.
W przypadku wersji Magento 2.2.6 zamień poniższy kod w swoim motywie. Ścieżka pliku lib / web / magnifier / magnifier.js Zamień w app / design / frontend / vendor / module / web
$box.on('mousemove', onMousemove);
_init($box, customUserOptions);
Zamień na.
$box.on('mousemove', onMousemove);
$box.on('mouseleave', mouseleave);
function mouseleave(e) {
onThumbLeave();
isOverThumb = false;
$magnifierPreview.addClass(MagnifyCls.magnifyHidden);
}
_init($box, customUserOptions);
Aktualizuję do wersji 2.2.6 i po tym nie działa, edytuję
kod w ten sposób i działa:
$box.on('mousemove', onMousemove);
$box.on('mouseleave', mouseleave);
function mouseleave(e) {
onThumbLeave();
isOverThumb = false;
$(largeWrapper).addClass(MagnifyCls.magnifyHidden);
}
// _init($box, gOptions);
_init($box, customUserOptions);
Wygląda na to, że to błąd Magetno.
Sprawdź tutaj .
Poprawka została połączona z Lattest Magetno 2.2.4 .
Jeśli używasz starszej wersji, możesz zmodyfikować poniższy plik jako obejście.
lib / web / magnifier / magnifier.js
$box.on('mousemove', onMousemove);
_init($box, gOptions);
Odniesienie: - Sprawdź To zatwierdzenie, które jest połączone z Magento 2.2.4
Update
: - Jeśli połączysz ten PR i będzie to dla ciebie problem z powiększeniem. Nie działa Wygląda na to, że naprawiono jeden problem z innym. Zrób to na własne ryzyko !!!
W najnowszej wersji powyższe rozwiązanie nadal nie działało, musiałem określić klasę podglądu lupy w następujący sposób:
$box.on('mousemove', onMousemove);
$box.on('mouseleave', mouseleave);
function mouseleave(e) {
onThumbLeave();
isOverThumb = false;
$('.magnifier-preview').addClass(MagnifyCls.magnifyHidden);
}
_init($box, customUserOptions);
Gdzie można znaleźć oryginał magnifier.js? Mamy ten problem i używamy motywu Ultimo. Jednak aplikacja / design / frontend / Infortis / ultimo jest jak daleko. Potem oczywiście mogę utworzyć katalog WWW / Lupa /, ale skąd wziąć właściwy magnifier.js?
Czy ktoś jest dobrym przykładem? Dzięki