経由で追加されましたので、私は(2つのdivを、jQueryの.hideを使用して負荷に隠されているそのうちの一つを持っている)CSSのトランジションが頻繁に再生されています。 jQueryの
一つのdivにidである私がしたいのメニューであり、他はグランプリ・修正・メニュー
です2つのボタンの間をフェードしてスライドさせます。そのレストランメニューでは、メニュー(アプリ、エントリー、デザートなど)のさまざまなセクションにスムーズにスクロールしたいが、ユーザーがPrix Fixボタンをクリックすると、ページはフェードして通常メニューをスライドさせるPrix Fixメニューでフェード&スライドします。 Prix Fixメニューが開いている場合は、Prix Fixリンク以外のリンクのいずれかをクリックして、メインメニューページに戻り、Prix Fixをスライドさせて、通常メニューでスライドさせます。
これを達成するには、Animate.cssからクラスを動的に追加したり削除したりするだけです。問題は、アニメーションが(たとえ、.one()メソッドを使用していても)アニメーションが複数回連続していることです。私はそれがアニメーションのイベントを聞いてループを起こしている別のアニメーションを再生するためかもしれないと信じています。しかし、それは無限にではなく、それを正確に4回再生するということは奇妙です。私も(タグの下部の中の前のスクリプトの後に配置)スムーズなスクロールスクリプトにもアンカーリンクでの作業を持って
$('#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');
});
});
:
は、ここではJavaScriptです。ジャストインケースここにこれを置くことは、問題を引き起こしていただきました!これは私がそう思ういけないにもかかわらず:
$('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;
});
});
CSSやHTMLなどのようなより多くの情報が必要な場合は、私が知っていると病気が追加さが、マークアップのかなり多くがありますすべての項目のためにメニューのために。ライブプロジェクトに
リンク:事前にProject
ありがとう!
これは完全に機能しました。なぜこれがうまくいったのか少し説明できますか? – HauntedSmores
更新私の答え – se0kjun
ありがとうございます。私は、通常のWebkitイベントを追加することで、より多くのブラウザをカバーしようとしていました – HauntedSmores