2016-11-05 226 views
1

我正在創建動態滾動頁面,我決定使用wheel事件來檢測用戶的滾動。正如你可能知道這個事件有一個deltaY參數動態更新(一次滾動幾次)。一旦deltaY大於100,我希望腳本返回true。但是它會一遍又一遍地更新,導致我的函數拍攝數次。有沒有辦法'烘烤'(能夠改變一次)這個價值的true有沒有辦法'烘烤'變量?

window.addEventListener('wheel', func) 
 

 
function func(event){ 
 
    if(event.deltaY>100){ 
 
    var p = document.createElement('p'); 
 
    var text = document.createTextNode("You scrolled over 100"); 
 
    p.appendChild(text); 
 
    document.body.insertBefore(p, document.getElementsByTagName('p')[0]); 
 
    } 
 
}
<p>Scroll the page down \/ and keep scrolling</p>

+2

你可以提供一些代碼?至少你的嘗試不正常。 – Aer0

+0

你是否想要一個滿足條件時執行_once_的函數? – vlaz

+0

@vlaz是的。一旦德爾塔大於100. – MaxelRus

回答

1

一旦元素被加入,您可以刪除監聽器。這種方式不會繼續觸發該功能。

window.addEventListener('wheel', func) 

function func(event){ 
    if(event.deltaY>100){ 
    var p = document.createElement('p'); 
    var text = document.createTextNode("You scrolled over 100"); 
    p.appendChild(text); 
    document.body.insertBefore(p, document.getElementsByTagName('p')[0]); 
    window.removeEventListener('wheel',func); 
    } 
} 

https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener