jquery 滾動條 scroll 和 animate出現的問題總結
阿新 • • 發佈:2019-01-04
//出現問題: 1、每次scroll都使動畫反覆觸發,解決這個問題使用動畫的 stop(),
// 這個方法主要是為了停止所有指定元素上執行的動畫
// 兩個引數,第一個引數刪除佇列動畫,第二引數是讓當前正在執行的動畫立即完成,並且
// 重設show和hide的原始延時,呼叫回撥函式,示例:
// $("#div").stop(); 停止當前動畫,繼續下一個動畫
// $("#div").stop(true) 停止元素的所有的動畫
// $("#div").stop(false, true) 讓當前動畫直接到達末狀態,繼續下一個動畫
// $("#div").stop(true, true) 清楚所有動畫,讓當前動畫直接到達末尾狀態
// 到這一步能基本解決問題了,但是觀察效果的時候發現進入動畫的時候還是
// 有點卡頓的問題。主要原因在下面。
// 2、第二個問題也是因為scroll每次觸發會引起上百次的操作,為了優化操作,網友提示
// 使用節流閥,不然scroll每次都在觸發。節約資源,其中提供了
// https://segmentfault.com/a/1190000002764479 函式防抖與節流的優秀文章。
//
$(function(){
var fs = true;
$(window).scroll(function(event) {
if( $(window).scrollTop() > 50 ){
if(fs){
$(".result").stop().animate({
top: 0
},300);
fs = false ;
}
}
else{
$(".result").stop().animate({
top: "-50px"
},300);
fs = true;
}
});
});