不是什么很难的东西,权且做个记录。

首先说下背景,目前的项目中,需要同时绑定 wheel 和 scroll 事件。

绑定 wheel,目的是开发 ctrl + wheel 缩放页面功能,此功能与浏览器本身的冲突,因此需要禁用滚轮原生功能,示意代码:

window.addEventListener('wheel', function(e){
e.preventDefault();
}, {passive: false});

此时遇到个问题,禁用 wheel 的同时,会将 scroll 事件也同时禁用,这个蛋疼的问题以前确实一直没注意到,最终一行代码搞定:

window.addEventListener('wheel', function(e){
if(e.ctrlKey === true){
e.preventDefault();
}
}, {passive: false});

  

测试一圈后发现,其他主流浏览器都 ok,唯独在搜狗浏览器中,无论如何禁用都没用。

观察了百度地图、蓝湖等成熟产品,也发现了同样的问题,此时的搜狗浏览器版本是 8.5.7,但在同事的 8.5.10 中却并没有这个问题。

到搜狗浏览器论坛中,搜索 “缩放” 关键字,发现也有用户跟我遇到的问题一样,但官方未回复。

至此,基本可以确定是搜狗浏览器的兼容问题,最终也确实如所想,升级到 8.5.10后,本问题未复现。

另外放一个百度过程中,找到的一种解决方案:

document.body.style.zoom = 'reset'

使用这个属性,可以让浏览器缩放时,缩放的数字变化,但页面实际不进行缩放,未经过大量浏览器测试,真实效用不保证。

一个 passive 引发的bug的更多相关文章

  1. 一个排序引发的BUG

    你好呀,我是why. 前两天在 Git 上闲逛的时候又不知不觉逛到 Dubbo 那里去了. 看了一下最近一个月的数据,社区活跃度还是很高的: 然后看了一下最新的 issue,大家提问都很积极. 其中看 ...

  2. 一个空格引发的bug

    好久没写博客了. 我们的一个项目用的thinkphp框架,当在debug模式下面运行很正常,但切换到生产模式时,刷新页面第一次可以正常显示,刷新第二次会出现错误如下: Fatal error: Cal ...

  3. 一个request引发的bug

    有很多错误由于需要是多线程是才会发生,导致经常在开发时很难发现, import java.lang.reflect.ParameterizedType; import java.util.List; ...

  4. 一个字体引发的bug

    delphi 7 中默认字体样式为‘MS Sans Serif’,一般情况下子级控件会继承父级一些属性,其中包括字体(包括字体大小,字体样式,颜色等)属性.如果动态创建控件且需要修改字体颜色或者大小时 ...

  5. Spring 循环引用(一)一个循环依赖引发的 BUG

    Spring 循环引用(一)一个循环依赖引发的 BUG Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) Spring 循环 ...

  6. 由一个emoji引发的思考

    由一个emoji引发的思考 从毕业以来,基本就一直在做移动端,但是一直就关于移动端的开发,各种适配问题的解决,在日常搬砖中处理了就过了,也没有把东西都沉淀下来,觉得甚是寒颜.现就一个小bug,让我们来 ...

  7. 安卓微信overflow-x overflow-y引发的bug

    今天xgo文章图片页上线用微信扫页面发现一个bug,页面可以双击放大缩小. 找了半天原因,发现是图片描述设置了overflow-y引发的bug. 建议在微信场景里满屏显示不能滚动的页面里慎用overf ...

  8. QByteArray引发的bug

    QByteArray引发的bug 在接收UDP数据的函数里,有如下代码片段 if(0x10 == data.size() && 0xCA == (unsigned char)data. ...

  9. PHP 中一个 False 引发的问题,差点让公司损失一百万

    PHP 中一个 False 引发的问题,差点让公司损失一百万 一.场景描述 上周我一个在金融公司的同学,他在线上写一个 Bug,差点造成公司损失百万.幸好他及时发现了这个问题并修复了.这是一个由 PH ...

随机推荐

  1. Java接口和Java抽象类的认识

    在没有好好地研习面向对象设计的设计模式之前,我对Java接口和Java抽象类的认识还是很模糊,很不可理解. 刚学Java语言时,就很难理解为什么要有接口这个概念,虽说是可以实现所谓的多继承,可一个只有 ...

  2. hadoop spark 总结

    yarn  由,资源管理器rm,应用管理器am appMaster,节点管理器nm 组成! 图侵删 yarn 的设计,是为了代替hadoop 1.x的jobtracker 集中式一对多的资源管理「资源 ...

  3. 安卓 九宫格 GridView 的表格布局

    首先,请大家理解一下“迭代显示”这个概念,这个好比布局嵌套,我们在一个大布局里面重复的放入一些布局相同的小布局,那些重复的部分是由图片和文字组成的小控件,图片在上方,文字在下方,之后我们只需要把这些小 ...

  4. BZOJ 1827: [Usaco2010 Mar]gather 奶牛大集会 树形DP + 带权重心

    Description Bessie正在计划一年一度的奶牛大集会,来自全国各地的奶牛将来参加这一次集会.当然,她会选择最方便的地点来举办这次集会.每个奶牛居住在 N(1<=N<=100,0 ...

  5. SQL第二节课

    SQL练习题 一.            设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的 ...

  6. Linux下进程与线程的区别

    https://www.cnblogs.com/fah936861121/articles/8043187.html https://my.oschina.net/cnyinlinux/blog/36 ...

  7. eclipse IED 创建springboot项目教程

    学习使我沉淀变成淀粉.-- 沃兹基硕德[美] 首先给你的 eclipse 安装插件 Help> Eclipse Marketplace uploading-image-736738.png 所搜 ...

  8. PHP AES cbc模式 pkcs7 128加密解密

    今天在对接一个第三方接口的时候,对方需要AES CBC模式下的加密.这里简单写一个demo class Model_Junjingbao extends Model { private static ...

  9. Problem 25

    Problem 25 The Fibonacci sequence is defined by the recurrence relation: Fn = Fn−1 + Fn−2, where F1 ...

  10. tp5 权限设置

    ============================== <?php/** * Created by PhpStorm. * User: 14155 * Date: 2018/11/10 * ...