JS取消事件默认行为和移动端触屏事件

2 篇文章 0 订阅

在写一些特殊的页面时候可能会需要取消事件的默认行为,例如取消鼠标滚轮的默认滚动

window.addEventListener('mousewheel',function(e){
        console.log('滚动了');
        e.preventDefault()
    }, { passive: false })
    //火狐用DOMMouseScroll绑定滚轮事件
    window.addEventListener('DOMMouseScroll', function(e){
        console.log('滚动了');
        e.preventDefault()
    }, { passive: false });

先监听鼠标滚轮事件,mousewheel是鼠标滚轮滚动事件,scroll是页面滚动事件,这里监听鼠标滚轮滚动事件,用e.preventDefault()方法取消默认事件,但是运行时会报错,并且无法实现完美取消默认事件,经查阅资料得知由于浏览器需要先执行绑定事件看看有没有取消默认事件,这样导致在大部分没有取消默认事件行为的时候浏览器运行不流畅,所以在高版本的浏览器中,监听事件时会传递第三个参数{ passive: false },默认值为true,当为true时候不能取消默认事件,当值为false时候就可以取消默认事件了

touch-action

touch-action属性是为为移动端设置的css样式,可以控制在元素上的触屏事件

*{
    touch-action: none;
}

这时候移动端就无法使用任何触屏事件了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值