In Magento 2. Für Mini-Cart und Store-Switcher werden sie mit einem Klick als Dropdown-Liste angezeigt. So ändern Sie beim Hover anstelle von "Klicken".
Ich hatte es mit jquery trigger click versucht, aber es funktioniert nicht.
magento2
mini-cart
magento-2.1.2
store-switcher
Herr Tim
quelle
quelle
Antworten:
Verwenden Sie in der Datei
magento\vendor\magento\module-checkout\view\frontend\templates\cart\minicart.phtml
(oder einer Überschreibungmagento\app\design\frontend\Custom\YourTheme\Magento_Checkout\templates\cart\minicart.phtml
) imdata-mage-init
Attribut Folgendes:und entfernen
"timeout": "2000"
Beispielcode:
quelle
Dies kann mithilfe der
data-mage-init
Magento-Funktionalität des nativen Attributs erfolgen. Solange Sie das Ereignis einschließen, können Sie eine Reihe anderer Attribute definieren, z.closeOnMouseLeave
closeOnEscape
triggerClass
parentClass
timeout
triggerTarget
Es gibt mehr davon, die durch die Magento-Vorlagen verstreut sind. In diesem Beispiel könnte das folgende
.block-minicart
Element in derapp/design/frontend/[vendor]/theme/Magento_Checkout/templates/cart/minicart.phtml
Vorlage enthalten sein (ungefähr Zeile 40):quelle
Machen minicart.phtml Struktur wie folgt
Standardstruktur
Fügen Sie unten div direkt oben hinzu
<div data-block="minicart" class="minicart-wrapper">
zuminicart.phtml
Entfernen Sie den folgenden Code aus dem Block block-minicart empty div
Fügen Sie den folgenden Js-Code zu minicart.phtml hinzu
Jetzt wird der Minicart-Inhalt beim Klicken mit der Maus angezeigt.
Lassen Sie mich wissen, wenn Sie ein Problem haben.
quelle
magento \ vendor \ magento \ module-checkout \ view \ frontend \ templates \ cart \ minicart.phtml
Überschreiben von
magento \ app \ design \ frontend \ Custom \ YourTheme \ Magento_Checkout \ templates \ cart \ minicart.phtml
quelle
<script type="text/javascript"> require([ "jquery", "mage/mage" ], function ($) { $(document).ready(function () { $('.container').hover(function () { $(this).find('.minicart-wrapper,.action.showcart').addClass("active"); $(this).find('.ui-widget-content').show(); }, function () { $(this).find('.minicart-wrapper,.action.showcart').removeClass("active"); $(this).find('.ui-widget-content').hide(); }); }); }); </script>
Antwort 5 ist die richtige Antwort. Mit dem Timeout können Sie jedoch festlegen, wie lange der Mini-Wagen nach dem Verlassen der Maus sichtbar bleibt. Der Standardwert ist 500, aber ich habe Macken gesehen, als ich ihn weggelassen habe. Das Setzen auf "Timeout": "200" scheint für mich gut zu funktionieren. Das Hinzufügen von Inline-JS wie in den Antworten 1 und 3 sollte vermieden werden.
quelle
Der obige Code funktioniert gut in 2.2.4
quelle
Dieser Code funktioniert auch zu gut. Sie benötigen ein css wie hinzufügen , .minicart-wrapper.active .ui-dialog.ui-widget.ui-widget-content.ui-Ecke-all.ui-front.mage-Drop - Down-dialog {display: Block wichtig ;; } Sie erhalten ein gutes Ergebnis.
Vielen Dank
quelle