誰かが説明するのを助けてくれると期待していた.animate()と.stop()jQueryメソッドに関する質問があります。jQuery .animate()によって一時停止が発生しました
私のウェブサイトでスムーズなスクロールができましたが、スクロールダウンするときにボタンをクリックしたときに問題が発生しました。スクロールしてすぐにスクロールして戻すことができます。 。私は.anate()の前に.stop()を追加して問題を完全に解決しました。私はボタンをクリックしてスクロールダウンしてからすぐに上下にスクロールすることができます。問題。
誰かがこれがなぜ私に説明されますか?
これは私のコードの例です:
var windowWidth = $(window).width();
if(windowWidth > 800) {
$(function() {
$("a[href*='#'][href!='#']").click(function() {
$('.nav-dropdown').hide();
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
if (target.length) {
$('html,body').stop().animate({
scrollTop: target.offset().top
}, 500);
return false;
}
}
});
});
}
var jump=function(e) {
if (e){
e.preventDefault();
var target = $(this).attr("href");
} else{
var target = location.hash;
}
$('html,body').stop().animate({
scrollTop: $(target).offset().top
}, 500, function(){
location.hash = target;
});
}
アニメーションはjQueryでキューに格納されているため、実行中のアニメーションは次のアニメーションを開始する前に完了する必要があります。それを 'stop()'に伝えることによって、基本的には何をしているのかを止め、新しいアニメーションを開始するように指示します。彼らはどちらも時間と場所を持っています。 – Archer