javascript - MouseWheel 事件在 IE 中不起作用?

标签 javascript jquery mouseevent mousewheel

我正在尝试使用滚轮水平移动页面。我在 Chrome 中获得了成功,但是当我尝试在 IE 上运行它时,它不起作用。

然后我在msdn网站上看到event.wheelDelta用于获取鼠标滚轮绕y轴旋转的距离。 但当我看到日志的控制台窗口时,它也会显示未定义。 console.log(event.wheelDelta);

这是我的 Java 脚本

     $(document).ready(function () {

        function extractDelta(e) {
            console.log(e.wheelDelta); 

            if (e.wheelDelta) {
                return e.wheelDelta;
            }

            if (e.originalEvent.detail) {
                return e.originalEvent.detail * -40;
            }

            if (e.originalEvent && e.originalEvent.wheelDelta) {
                return e.originalEvent.wheelDelta;
            }
        }

        $(window).on("DOMMouseScroll wheel", function (event) {
            var delta = extractDelta(event);
            var $this = $(this);
            //debugger;
            //var delta = event.detail < 0 || event.originalEvent.wheelDelta > 0 ? 1 : -1;
            console.log(delta);
            if (delta > 0) {
                $this.scrollLeft(($this.scrollLeft() - 400));
            } else {
                $this.scrollLeft(($this.scrollLeft() + 400));
            }

            //this.scrollLeft -= (this.scrollLeft + 500);

            event.stopPropagation();
            event.preventDefault();

        });

请谁能解释一下为什么这在 IE 上不起作用。我正在使用 IE 11、jQuery 2.0.3 和 jQuery MouseWheel 3.0.4。

最佳答案

Jquery 不传递 IE 事件对象。如果您想要 MS 特定属性,则必须使用 addeventlistener 而不是 on

关于javascript - MouseWheel 事件在 IE 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20404984/

相关文章:

javascript - 将 URL 返回值记录到 Firebug 控制台中

javascript - 在循环数组时使用 jQuery .get() 前置的元素在页面刷新时以不同的顺序加载

javascript - prototype.js 用 span 包裹每个 h3 标签

javascript - jQuery:通过鼠标单击而不是键盘自动填充输入值

javascript - 如何确定鼠标光标的起点和终点?

javascript - 如何使用 D3.js 在鼠标滚动上移动 svg 图表

javascript - 图像单击 - 打开对话框或弹出窗口

c# - Xamarin Forms 中的鼠标/触摸事件

javascript - 如何使用 jQuery 检查某个元素是否至少具有指定类列表中的一个类?

Javascript/Jquery 获取图像实际 z-index