EventTarget事件:scroll

2019-01-25 16:45 更新

EventTarget事件 - scroll

滾動文檔視圖或元素時會觸發(fā)scroll事件。

基本信息

接口UIEvent
是否冒泡不在元素上,而是在文檔上觸發(fā)時向默認(rèn)視圖冒泡
是否可取消沒有
目標(biāo)DefaultView Document,,Element
默認(rèn)操作沒有

屬性

屬性類型描述
target(只讀)EventTarget事件目標(biāo)(DOM樹中最頂層的目標(biāo))。
type(只讀)DOMString事件的類型。
bubbles(只讀)Boolean事件是否正常冒泡。
cancelable(只讀)Boolean事件是否可以取消。
view(只讀)WindowProxyDocument.defaultViewwindow文件)
detail(只讀)longfloat0。

示例

滾動事件限制

由于scroll事件可以以高速率觸發(fā),因此事件處理程序不應(yīng)執(zhí)行計算量大的操作,例如DOM修改。相反,建議使用requestAnimationFrame(),setTimeout()或CustomEvent來限制事件,如下所示。

但請注意,輸入事件和動畫幀以大約相同的速率觸發(fā),因此下面的優(yōu)化通常是不必要的。此示例優(yōu)化requestAnimationFrame的scroll事件。

// Reference: http://www.html5rocks.com/en/tutorials/speed/animations/

let last_known_scroll_position = 0;
let ticking = false;

function doSomething(scroll_pos) {
  // Do something with the scroll position
}

window.addEventListener('scroll', function(e) {
  last_known_scroll_position = window.scrollY;

  if (!ticking) {
    window.requestAnimationFrame(function() {
      doSomething(last_known_scroll_position);
      ticking = false;
    });

    ticking = true;
  }
});

規(guī)范

  • DOM L3
  • CSSOM視圖

瀏覽器兼容性

iOS UIWebView 

在iOS UIWebViews中,滾動時不會觸發(fā)scroll事件;它們只在滾動完成后才會被觸發(fā)。請參閱Bootstrap問題#16202。Safari和WKWebViews不受此錯誤的影響。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號