So habe ich 2 divs, einer von ihnen auf Belastung mit jQuery .Hide versteckt()CSS-Übergänge spielen zu oft; Hinzugefügt via jQuery
Ein div id Menüs und der andere ist prix-fix-Menü
Ich möchte Fade und gleiten zwischen den 2 mit den Tasten klicken. Es ist ein Restaurant-Menü, so dass ich sanft zu den verschiedenen Bereichen des Menüs (wie Apps, Vorspeisen, Dessert etc.) scrollen möchte, aber dann, wenn der Benutzer den Prix Fix-Knopf klickt, wird die Seite verblassen und das normale Menü herausziehen und verblasst und gleitet im Prix Fix-Menü. Wenn das Prix Fix-Menü geöffnet ist, möchte ich einen der ANDEREN Links als den Prix-Fix-Link verwenden, um den Benutzer zurück auf die Hauptmenü-Seite zu führen, den Prix Fix zu gleiten und in das normale Menü zu gleiten.
Um dies zu erreichen, bin ich nur dynamisch hinzufügen und entfernen Klassen aus Animate.css. Das Problem ist, dass die Animationen mehr als einmal abgespielt werden (obwohl ich die Methode .one() verwende). Ich glaube, es könnte daran liegen, dass ich das Ereignis animationend höre, um dann eine andere Animation zu spielen, die eine Schleife verursacht. Aber was ist seltsam, dass es genau 4 mal spielt, nicht unendlich.
Hier ist das javascript:
$('#prix-fix-menu, #catering-menu').hide();
$("a[href='#prix-fix']").on('click', function() {
$('#menus').removeClass().addClass('animated fadeOutLeft');
$('#menus').one('animationend webkitAnimationEnd', function() {
$("#menus").hide();
$('#prix-fix-menu').show().removeClass().addClass('animated fadeInRight');
});
});
$("a:not(a[href='#prix-fix'])").on('click', function() {
$('#prix-fix-menu').removeClass().addClass('animated fadeOutRight');
$('#prix-fix-menu').one('animationend webkitAnimationEnd', function() {
$("#prix-fix-menu").hide();
$('#menus').show().removeClass().addClass('animated fadeInLeft');
});
});
ich auch einen glatten Scroll-Skript (positionierte nach dem vorherigen Skript in am Ende des Tags) Arbeit mit den Ankern sowie Links. Putting dies hier nur im Fall dies was das Problem verursacht, obwohl ich denke nicht so:
$('a[href^="#"]').on('click',function (e) {
e.preventDefault();
var target = this.hash;
var $target = $(target);
$('html, body').stop().animate({
'scrollTop': $target.offset().top
}, 900, 'swing', function() {
window.location.hash = target;
});
});
Wenn mehr Informationen wie CSS oder HTML sind dann lassen Sie uns benötigt kennen und Ill hinzugefügt, aber es gibt eine ganze Reihe von Markup für das Menü wegen aller Artikel.
Link zum Live-Projekt: Project
Vielen Dank im Voraus!
Das hat perfekt funktioniert! Könntest du ein bisschen mehr darüber erklären, warum das funktioniert hat? – HauntedSmores
update meine Antwort – se0kjun
Vielen Dank. Ich habe gerade versucht, mehr Browser durch Hinzufügen von regulären und Webkit-Ereignissen zu decken – HauntedSmores