Javascript 鼠标滚轮事件在IE中不起作用?
我正在尝试使用滚轮水平移动页面。我在Chrome上获得了成功,但当我尝试在IE上运行它时,它不起作用 然后我在msdn网站上读到event.wheeldta用于获取鼠标滚轮绕y轴旋转的距离。 但是当我看到日志的控制台窗口时,它也会显示undefined。 console.log(event.wheelDelta) 这是我的Java脚本Javascript 鼠标滚轮事件在IE中不起作用?,javascript,jquery,mouseevent,mousewheel,Javascript,Jquery,Mouseevent,Mousewheel,我正在尝试使用滚轮水平移动页面。我在Chrome上获得了成功,但当我尝试在IE上运行它时,它不起作用 然后我在msdn网站上读到event.wheeldta用于获取鼠标滚轮绕y轴旋转的距离。 但是当我看到日志的控制台窗口时,它也会显示undefined。 console.log(event.wheelDelta) 这是我的Java脚本 $(document).ready(function () { function extractDelta(e) {
$(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();
});
$(文档).ready(函数(){
函数delta(e){
控制台日志(e.wheelDelta);
如果(e.车轮三角洲){
返回e.wheelDelta;
}
如果(如原始事件细节){
返回e.originalEvent.detail*-40;
}
if(e.originalEvent和e.originalEvent.wheelDelta){
返回e.originalEvent.wheelDelta;
}
}
$(窗口).on(“DOMMouseScroll滚轮”,函数(事件){
var delta=提取delta(事件);
var$this=$(this);
//调试器;
//var delta=event.detail<0 | | event.originalEvent.wheeldta>0?1:-1;
控制台日志(增量);
如果(增量>0){
$this.scrollLeft($this.scrollLeft()-400));
}否则{
$this.scrollLeft($this.scrollLeft()+400));
}
//this.scrollLeft-=(this.scrollLeft+500);
event.stopPropagation();
event.preventDefault();
});
请任何人解释一下为什么这在IE上不起作用。我使用的是IE 11和jQuery 2.0.3以及jQuery鼠标滚轮3.0.4。jQuery不会传递IE事件对象。如果你想要MS特定属性,你必须使用
addeventlistener
而不是在上传递IE事件对象。如果您想要MS特定的属性,您必须使用addeventlistener
而不是上的尝试使用jQuery的bind
功能:
$(window).bind("DOMMouseScroll wheel", function (event) {
// Code goes here
});
尝试使用jQuery的bind
函数:
$(window).bind("DOMMouseScroll wheel", function (event) {
// Code goes here
});