有没有办法烘烤'变量?

时间:2016-11-05 21:05:20

标签: javascript

我正在创建动态滚动页面,我决定使用wheel事件来检测用户的滚动。您可能知道此事件具有动态更新的deltaY参数(一次滚动可多次)。我希望脚本在true大于100时返回deltaY。但是它会一遍又一遍地更新,导致我的功能拍摄几次。有没有办法烘烤(能够改变一次)这个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>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分: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