日韩精品一区二区三区视频-日韩精品一区二区三区在线观看-日韩精品一区二区三区在线观看l-日韩精品一区二区三区中文-日韩精品一区二区三区中文3d-日韩精品一区二区三区中文不卡

Web前端知識

首頁 > 免費 > Web前端知識 >

使用rAF(requestAnimationFrame)觸發滾動事件

來源:北京匯仁智杰科技有限公司   時間:2016-05-18   點擊:

  抖動與節流實現的方式都是借助了定時器setTimeout,但是如果頁面只需要兼容高版本瀏覽器或應用在移動端,又或者頁面需要追求高精度的效果,那么可以使用瀏覽器的原生方法rAF(requestAnimationFrame)。
  requestAnimationFrame
  window.requestAnimationFrame() 這個方法是用來在頁面重繪之前,通知瀏覽器調用一個指定的函數。這個方法接受一個函數為參,該函數會在重繪前調用。
  rAF常用于web動畫的制作,用于準確控制頁面的幀刷新渲染,讓動畫效果更加流暢,當然它的作用不僅僅局限于動畫制作,因為同時它也是一個定時器。
  通常來說,rAF被調用的頻率是每秒60次,也就是1000/60,觸發頻率大概是16.7ms。
  簡單而言,使用 requestAnimationFrame 來觸發滾動事件,相當于上面的:
  throttle(func, xx, 16.7) //xx 代表 xx ms內不會重復觸發事件 handler
  簡單的示例如下:
var ticking = false; // rAF 觸發鎖
function onScroll(){
  if(!ticking) {
  requestAnimationFrame(realFunc);
 ticking = true;
  }
}
function realFunc(){
// do something...
  console.log("Success");
  ticking = false;
}
// 滾動事件監聽
window.addEventListener('scroll', onScroll, false);
  上面簡單的使用rAF的例子可以拿到瀏覽器下試一下,大概功能就是在滾動的過程中,保持以16.7ms的頻率觸發事件handler。
  使用requestAnimationFrame優缺點并存,首先我們不得不考慮它的兼容問題,其次因為它只能實現以16.7ms的頻率來觸發,代表它的可調節性十分差。但是相比throttle(func, xx, 16.7),用于更復雜的場景時,rAF可能效果更佳,性能更好。
  總結一下
  防抖動:防抖技術即是可以把多個順序地調用合并成一次,也就是在一定時間內,規定事件被觸發的次數。
  節流函數:只允許一個函數在 X 毫秒內執行一次,只有當上一次函數執行后過了你規定的時間間隔,才能進行下一次該函數的調用。
  rAF:16.7ms觸發一次handler,降低了可控性,但是提升了性能和精確度。
  簡化scroll內的操作
  上面介紹的方法都是如何去優化scroll事件的觸發,避免scroll事件過度消耗資源的。
  但是從本質上而言,我們應該盡量去精簡scroll事件的handler,將一些變量的初始化、不依賴于滾動位置變化的計算等都應當在scroll事件外提前就緒。
  建議如下:
  避免在scroll事件中修改樣式屬性 / 將樣式操作從scroll事件中剝離
6.jpg  輸入事件處理函數,比如scroll/touch事件的處理,都會在requestAnimationFrame之前被調用執行。
  因此,如果你在scroll事件的處理函數中做了修改樣式屬性的操作,那么這些操作會被瀏覽器暫存起來。然后在調用requestAnimationFrame的時候,如果你在一開始做了讀取樣式屬性的操作,那么這將會導致觸發瀏覽器的強制同步布局。

網絡營銷推廣 . 北京匯仁智杰科技有限公司!

地址:北京市昌平區回龍觀龍冠大廈5層
咨詢:13370157521
業務QQ:373002979
E - mail:sales @ huirenzhijie.com
企業網站備案:京ICP備15021091號-1

匯仁智杰與眾不同

  • 有網絡推廣經驗
  • 有網站建站隊伍
  • 有大型網站建設經驗
  • 致力于營銷型網站建設
  • 始終堅持技術和服務同樣重要
查看PC版網站
備案號:京ICP備15021091號-1 版權所有:匯仁智杰

色爱无码av综合区 | 无码熟妇αⅴ人妻又粗又大 | 美女av一区二区三区 | 特级a欧美做爰片三人交 | 久久18禁高潮出水呻吟娇喘 | 7777久久亚洲中文字幕 | 国产成人综合高清在线观看 | 免费人成激情视频在线观看冫 | 国产精品久久久久久人妻精品动漫 | 中文无码日韩欧 | 精品少妇人妻av一区二区 | 国产亚洲日韩欧美一区二区三区 | 后入内射欧美99二区视频 | 欧美疯狂做受xxxx高潮小说 | 久久综合九色综合8888 | 国产人成在线视频 | 久久亚洲国产成人影院 | 国产在线精品一区二区不卡 | 成人爽a毛片免费 | 亚洲深深色噜噜狠狠网站 | 欧美丰满老熟妇aaaa片 | 国产精品三级在线观看无码 | 国产无遮挡aaa片爽爽 | 国产麻豆精品精东影业av网站 | 美女一级毛片免费不卡视频 | 成人一区二区免费视频 | 久久精品久久精品久久精品 | 欧洲美熟女乱又伦av影片 | 极品成人影院 | 军人全身脱精光自慰 | 国产高清美女一级毛片图片 | 亚洲av色香蕉一区二区 | 日本成熟少妇喷浆视频 | 超薄肉色丝袜一二三四区 | 国产男女猛烈无遮挡免费视频网站 | 国产精品一区二区久久不卡 | 久久久精品日本一区二区三区 | 女的被弄到高潮娇喘喷水视频 | 又湿又紧又大又爽a视频国产 | 粗大挺进尤物人妻中文字幕 | 亚洲国产精久久久久久久 |