W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
滾動(dòng)文檔視圖或元素時(shí)會(huì)觸發(fā)scroll事件。
接口 | UIEvent |
---|---|
是否冒泡 | 不在元素上,而是在文檔上觸發(fā)時(shí)向默認(rèn)視圖冒泡 |
是否可取消 | 沒(méi)有 |
目標(biāo) | DefaultView Document ,,Element |
默認(rèn)操作 | 沒(méi)有 |
屬性 | 類型 | 描述 |
---|---|---|
target (只讀) | EventTarget | 事件目標(biāo)(DOM樹(shù)中最頂層的目標(biāo))。 |
type (只讀) | DOMString | 事件的類型。 |
bubbles (只讀) | Boolean | 事件是否正常冒泡。 |
cancelable (只讀) | Boolean | 事件是否可以取消。 |
view (只讀) | WindowProxy | Document.defaultView (window 文件) |
detail (只讀) | long (float ) | 0 。 |
由于scroll事件可以以高速率觸發(fā),因此事件處理程序不應(yīng)執(zhí)行計(jì)算量大的操作,例如DOM修改。相反,建議使用requestAnimationFrame(),setTimeout()或CustomEvent來(lái)限制事件,如下所示。
但請(qǐng)注意,輸入事件和動(dòng)畫幀以大約相同的速率觸發(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;
}
});
在iOS UIWebViews中,滾動(dòng)時(shí)不會(huì)觸發(fā)scroll事件;它們只在滾動(dòng)完成后才會(huì)被觸發(fā)。請(qǐng)參閱Bootstrap問(wèn)題#16202。Safari和WKWebViews不受此錯(cuò)誤的影響。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: