这些web细节你掌握了吗?

移除event.preventDefault()

  1. 如果一个事件中有时需要调用event.preventDefault()取消浏览器默认事件,有时又不需要调用
  2. 比如自定义滚动条,当滚动条还没有滚动到最顶端或者最底端时,需要调用event.preventDefault()取消浏览器默认事件,不然会出现自定义滚动条和最外层document的滚动条同时滚动
  3. 而当滚动条滚动到最顶端或者最底端时,自定义滚动条已经不能滚动了,则需要让最外层document的滚动条滚动,便需要移除event.preventDefault()
  • 解决方法便是取消当前事件的绑定,示例代码:

    var f=function(e) {
        // ...
        // 滚动到最大最小时,重新绑定事件,相当于移除preventDefault
        if(that.current >= that.maxCurrent || that.current <= 0){
            that.wrapEl.off("mousewheel DOMMouseScroll", f).on("mousewheel DOMMouseScroll", f);
        }else{
            e.preventDefault();
        }
    }
    this.wrapEl.on("mousewheel DOMMouseScroll", f);         // 给dom添加滚动事件
    

      

猜你喜欢

转载自www.cnblogs.com/yrfcxy/p/11325442.html
今日推荐