1. 程式人生 > >jquery 滾動條 scroll 和 animate出現的問題總結

jquery 滾動條 scroll 和 animate出現的問題總結

//出現問題: 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; } }); });