1
私はサイドメニューを開くための次のスクリプトを持っています。 メニューが1行ずつ開きます。 しかし、メニューボタンをすばやくクリックすると、アニメーションが形成されます。 これをどうやって止めることができますか?以前は.stop(true)と.finish()で試してみましたが、目的の効果は得られませんでした。私はおそらく何か間違っているので、私はjQueryを初めて使っています。jQueryのアニメーションの蓄積を停止するにはどうすればよいですか?
var s = 0;
var navMenu = document.getElementById("nav_menu");
var navBtn = document.getElementById("btn");
var speed = 100;
function menuOpen() {
if (s==0){
$("#nav_menu").scrollTop(0);
navBtn.classList.add('close');
navMenu.style.zIndex = "4";
navMenu.style.overflowY = 'auto';
$('ul').each(function() {
$(this).children().each(function(i) {
$(this).delay(i * speed).animate({
left: 0
});
});
});
s++;
$("li").promise().done(function() {
navMenu.style.zIndex = "4";
navMenu.style.overflowY = 'auto';
});
} else {
navBtn.classList.remove('close');
$('ul').each(function() {
$(this).children().each(function(i) {
$(this).delay(i * speed).animate({
left: "100%"
});
});
});
s=0;
$("li").promise().done(function() {
navMenu.style.zIndex = "0";
navMenu.style.overflowY = 'hidden';
});
};
};
可能であれば、回答を説明してください。 ありがとう
こんにちは感謝を呼び出す必要があります。しかし、これは機能しません。 アニメーションループが壊れます。アニメーションを停止します。しかし、私がボタンをクリックした時まで走っていた場所だけ。それらは折りたたまれますが、残りの行は一緒に開いています。 – user1306732
jsfiddleでコードを追加してリンクを提供できますか? –
Jsfiddleでアニメーションが表示されないので、ここにファイルをアップロードしました: http://mgolan.com/temp/menu/ デモでCSSアニメーションで達成しようとしている効果を作成できましたここに:http://stackoverflow.com/questions/39485115/how-can-i-identify-when-theopening-closing-css-animation-ends-with-javascript これは他の問題があります – user1306732