在Microsoft Edge浏览器中处理奇怪的倒车事件deltaX?

今天我在微软的Edge浏览器中发现了一些非常奇怪的行为,wheel eventsdeltaX值显然是倒置的!这是特别令人惊讶的,因为这与我曾经测试的其他浏览器不兼容,包括返回预期值的Internet Explorer 11.

看到这个问题在操作上相当简单,只需运行以下代码,并使用鼠标滚轮或触控板.

window.addEventListener('wheel',function(e) {
    console.log(e.deltaX,e.deltaY);
});

为了方便起见,我创建了一个全页面的示例(片段对此而言很棘手):

Fullpage Working Example

向下滚动给出了正值,并且在Edge,IE和其他浏览器中预期会产生负值.然而,在Edge Wheel左边给出一个正值,右边是一个负值,与其他浏览器完全相反(IE11及以下的包含).

我制作了一些GIF视频,以显示与文件大小相关的问题.

> IE11
> Edge

问题:

为什么是这样的,是否有解决方案来处理浏览器兼容性问题?有没有办法检测这个特征?这个行为是一个错误,还是记录在某个地方?

The spec strongly suggests this is in-fact incorrect behavior

If a user agent scrolls as the default action of the wheel event then the sign of the delta SHOULD be given by a right-hand coordinate system where positive X,Y,and Z axes are directed towards the right-most edge,bottom-most edge,and farthest depth (away from the user) of the document,respectively.

笔记:

>我已经在Windows 10 VM和本机笔记本电脑中测试过,两者的行为是一样的.
>我相当肯定这与“自然”/倒置滚动无关(所有系统和VM主机测试关闭,只发生在一个轴上).
>在旁注中,我不知道deltaZ是颠倒还是甚至支持开始,我缺乏这样的输入设备.

错误报告:

I’ve reported the bug to Microsoft here.它被分配给某人,所以希望它会被修复.

当我们等待Microsoft的正式回复时,希望以更新的形式解决问题,我已经找到一种方法来检查浏览器是否报告了一个不正确的倒数deltaX.

Edge还增加了对非标准wheelDeltaX,wheelDeltaY和wheelDelta属性的支持.与deltaX不同,这些值是正确的,而是指实际的车轮更换,而不是计算结果.虽然他们的实际价值观没有什么兴趣,但我们可以从中推断出正确的价值.

在Chrome中,deltaX和wheelDeltaX正确具有不同的符号值,因此当一个为负数时,另一个为正数.这意味着如果这两个值都为负数或两者均为正值,则deltaX当前正在Edge中被错误地签名.因此,我们可以使用此属性来检测错误的反转值并将其反转.

这是我创建的一个包装函数来解决问题.

function wheelDeltaX(e) {
    // Get the reported deltaX.
    var r = e.deltaX;

    // In Edge,the deltaX incorrectly matches wheelDeltaX sign.
    // If both value signs match then uninvert it.
    var wheelDeltaX;
    if (
        r &&
        (wheelDeltaX = e.wheelDeltaX) &&
        (
            (r < 0 && wheelDeltaX < 0) ||
            (r > 0 && wheelDeltaX > 0)
        )
    ) {
        r = -r;
    }

    return r;
}

只要Edge在希望解决问题的同时保留对wheelDeltaX的正确签名,这应该是面向未来的.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


edge浏览器是Windows系统自带的浏览器工具,用户可以在上面访问网站、在线观看视频、玩网页游戏、购物等等,但是有用户打开edge浏览器出现错误提示网络链接无法加载,检查网络连接是正常的,那是哪里出现了问题?下面就和小编一起来看看具体的解决办法。
edge浏览器是Windows系统自带的浏览器,因其内存占用高,网页加载慢,支持的插件数量太少而备受诟病。微软为了推广edge浏览器,对其进行了更新和优化,可以支持海量的Chorm浏览器插件,还提供三种不同模式,基本、平衡、严格。新版Edge还能阻止有害的跟踪器获取我们的浏览数据,为我们的网络浏览提供一道保护屏障。那么我们要怎么升级edge浏览器?下面就来看看具体的操作。
edge浏览器是win10系统自带的浏览器,通常情况下打开浏览器,页面会显示百度搜索等页面,但是最近有用户发现自己打开浏览器后显示的却是“接下来做什么”,这是怎么回事?其实是电脑没有设置默认搜索引擎和主页引起的,我们只要设置浏览器的搜索引擎即可解决。
edge浏览器是现在大家经常使用的浏览器之一,我们有时候在浏览量外文网站的时候,需要使用翻译功能,但是有部分用户不知道edge浏览器翻译功能在哪。今天小编就来给大家介绍一下用edge浏览器把网页自动翻译成中文的方法。
新版edge浏览器兼容性设置在哪?在使用edge浏览器的时候经常遇到网页中一些窗口无法打开,这是由于浏览器不兼容导致的,这时就需要将浏览器调为兼容模式,这样网页使用才会没有阻碍。今天小编教大家新版edge浏览器兼容性设置的设置方法!
edge浏览器是系统自带的浏览器工具,但是很多用户都会选择第三方浏览器来使用,想要卸载掉edge浏览器,尝试了几种方法都卸载不掉,这该怎么办?针对这一问题,小编整理了两种卸载方法,帮助用户彻底卸载edge。
很多用户觉得系统自带的edge浏览器没什么用,就将其卸载了,可是卸载之后又觉得后悔,想要重装不知道怎么办了。其实方法并不难,下面小编就给大家带来两个edge浏览器卸载后了的恢复方法,一起来看看。
edge浏览器是微软自带的浏览器软件,微软为了更加符合用户的使用习惯对edge浏览器进行了较大的改进,添加了不少新功能。但是不少用户升级新版edge浏览器后发现找不到internet选项?新版edge浏览器internet选项在哪里?下面就来看看具体的步骤。
不少用户都喜欢使用Edge浏览器,但是在使用过程中难免出现一些问题,比如访问网页时突然花屏,这该怎么办?小编认为应该是开启了硬件加速模式导致的,下面就来看看详细的解决方法吧,很简单。
有用户发现电脑每次启动都会自动打开Edge栏,用起来非常不习惯,非常令人头疼,有什么办法可以取消电脑启动时自动打开Edge浏览器的Edge栏?当然是有的,下面就来看看Edge浏览器取消电脑启动时自动打开Edge栏的方法介绍。
Microsoft Edge浏览器的Edge栏可以帮助用户,无需打开完整浏览器窗口就能搜索和浏览web、查看新闻标题、检查天气等信息。但是还不少用户打不开Edge栏,其实方法很简单,下面就来看看详细的操作。
win10系统中新增了一个全新的edge浏览器,并将其设置为win10的默认浏览器,不少用户反映自己用完edge浏览器后,不知道如何关闭它?下面小编就给大家分享一下彻底关闭win10自带的edge浏览器的办法。
每次打开edge浏览器想查询专业知识时,总会看到浏览器主页飘着一些“没营养的”的新闻,看多了就觉得烦,有什么方法可以屏蔽这些新闻吗?下面小编就给大家介绍关闭edge浏览器的新闻推送的方法,简单高效。
用户通常会根据自己的喜好设置不同的搜索引擎,Edge浏览器是微软自带的浏览器工具,有用户在使用Edge浏览器时发现默认的搜索引擎是必应,用起来不是很习惯,要如何取消必应bing搜索呢?下面小编就给大家详细介绍一下Edge浏览器关闭必应搜索的方法,有需要的用户快来看看吧。
edge浏览器受到非常多用户的喜欢,在使用的时候不小心多创建了一个用户配置,要怎么删除呢?很多用户都不知道如何操作,今天小编专门为大家带来了edge删除多余用户配置的操作方法,快来瞧瞧吧。
win10edge浏览器不能下载文件怎么办?这其实是因为edge浏览器开启了SmartScreen,这会帮助用户阻止某些可能不安全的网站链接,但是也有可能误报,今天,小编给朋友们讲讲win10edge浏览器不能下载文件的解决方法,希望可以帮助到大家。
我们在使用Edge浏览器的地址栏搜索东西时,一般都会显示下拉的内容,方便用户搜索想要的东西。但是最近有用户发现地址栏不能下拉,这是怎么回事?针对这一问题,小编就给大家分享一下具体的解决办法。
Edge浏览器性能稳定、运行流畅,收到广大用户的欢迎,但是最近有小伙伴发现在浏览器中的地址栏搜索时,总会弹出一些推荐的搜索内容,看起来很不舒服,那么Edge浏览器地址栏怎么关闭搜索推荐呢?下面就来看看具体的操作。
Edge浏览器是微软的一款网页浏览工具,现在也越来越多的用户在进行使用,但是这款软件的对内存的占用率非常的高,导致使用起来不流畅,那么是什么原因导致的,要如何解答,本期的软件教程就来为广大用户们进行解答,一起来了解看看吧。
Edge浏览器是Win11系统内置的浏览软件,用户可以通过该软件进行网页浏览,简洁实用,但是最近有用户发现自己的Edge浏览器会一直无限循环打开网页,遇到这种情况应该怎么处理呢?针对这一问题,本篇带来了详细的解决方法,分享给大家。