Problema relativo allo zoom dell'immagine del prodotto nella pagina dei dettagli del prodotto quando il menu a discesa presenta un'area sovrapposta


9

Lo zoom funziona bene,

Ma quando si passa con il mouse sul menu a discesa della categoria nell'area di sovrapposizione dell'immagine del prodotto e del menu a discesa, lo zoom funziona normalmente, anche il mouse è ancora nel menu a discesa.

Si prega di controllare l'immagine di acquisizione:

inserisci qui la descrizione dell'immagine


imposta uno z-index più alto su zoom, risolverà il tuo problema
— Manoj Deswal

@ManojDeswal, sono stato provato usando z-index: 99999; ma non funziona. Potete fornirmi soluzioni adeguate.
— Mayur Rathod,

se hai l'URL online allora posso aiutarti
— Manoj Deswal

Funziona bene nel mio sistema locale.
— Mayur Rathod,

passa il tuo URL online, dopo aver verificato che posso dirti la soluzione esatta
— Manoj Deswal,

Risposte:


19

Devi sostituire il codice di lib / web / magnifier / magnifier.js nel tuo tema come di seguito.

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

Sostituiscilo con.

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

Dobbiamo aggiungere la funzione sull'evento "mouseleave" del blocco di immagini, altrimenti lo zoom verrà visualizzato dopo che il mouse esce dal blocco di immagini.
Per favore aggiungi il codice sopra e fammi sapere se hai bisogno di qualcos'altro.


Magento 2.2.5. Ho apportato questa modifica, ho cancellato la cache e non funziona ancora come dovrebbe. Altri suggerimenti?
— Rudy C.,

Si prega di eseguire il comando seguente sulla radice della directory magento. -> php bin / magento s: su -> php bin / magento s: d: c fammi sapere se non funzionerà dopo l'esecuzione sopra il comando
— Nitin Vala

Ha funzionato! Il testo del nome dell'immagine sta ancora ritagliando il fondo è qualcosa con cui hai familiarità? Speravo che risolvere il problema del passaggio del mouse sull'immagine avrebbe risolto anche il problema del testo dell'immagine, ma sembra essere separato? Grazie per l'aiuto e il tempo, Nitin.
— Rudy C.,

Sì, entrambi i problemi sono separati. È già stato discusso su git hub github.com/magento/magento2/issues/15035(vedi gli ultimi 3-4 commenti). Potrebbe anche essere risolto nell'ultima versione di magento.
— Nitin Vala,

Lavora per 2.2.4
— Joel Davey il

8

Per magento versione 2.2.6 sostituisci il codice qui sotto nel tuo tema. Percorso file lib / web / magnifier / magnifier.js Sostituisci in app / design / frontend / vendor / module / web

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

Sostituiscilo con.

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

Grazie sta funzionando !!
— Manish Goswami,

Grazie. Ha funzionato ...
— soofz il

6

Aggiornamento a v2.2.6 e non funziona più dopo che
modifico il codice in questo modo e funziona:

 $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
Ho appena aggiornato alla 2.2.6 e ho usato questo codice. Non stai ancora lavorando per me qualche altro suggerimento? Grazie. Cordiali saluti, stavo usando la patch precedente suggerita da Nitin senza problemi.
— Rudy C.,

Modifico il codice con: $ (largeWrapper). ... qual è il tuo errore frontale?
— Rudak,

1
questo ha risolto il mio problema su 2.2.6 grazie.
— CDzWebDev,

1
Questo funziona per me il 2.3
— BartZalas

3

Sembra che questo sia il bug di Magetno.

Controllare Qui .

Fix è stato unito a Lattest Magetno 2.2.4 .

Se stai utilizzando una versione precedente di quella che puoi modificare sotto il file come workarround.

lib / web / lente di ingrandimento / magnifier.js

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

Riferimento: - Controlla questo commit che è unito a Magento 2.2.4

Update: - Se unisci questo PR e allora sarà un problema di zoom per te. Sembra non funzionare, risolvere un problema incasinato con l'altro. Fallo a tuo rischio e pericolo !!!


3

Con l'ultima versione, la soluzione di cui sopra non funzionava ancora, dovevo specificare la classe di anteprima della lente di ingrandimento specificatamente in questo modo:

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

Questo non funziona per me su una nuova installazione di 2.3.0. Eventuali suggerimenti?
— Rudy C.

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

Questo codice funziona bene.

Grazie,


1

Dove puoi trovare originel magnifier.js? Abbiamo questo problema e utilizziamo il tema Ultimo. Tuttavia app / design / frontend / Infortis / ultimo è quanto lontano arriviamo. Quindi ovviamente posso creare le cartelle web / magnifier / ma da dove ottenere il giusto magnifier.js?

Qualcuno un buon esempio? Grazie


Magnifier.js originale si trova nella cartella MagentoRoot / lib / web / magnifier /.
— Nitin Vala,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.