Mar*_*art 15 javascript internet-explorer mouseevent multi-touch microsoft-edge
我有这个代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
window.addEventListener('DOMMouseScroll', mouseWheelEvent);
window.addEventListener('mousewheel', mouseWheelEvent);
function mouseWheelEvent() {
alert(1);
}
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
它适用于Chrome和Firefox.但是,它不能与我的笔记本电脑dell xps 13 9434的触控板在IE和边缘.但它确实与(某些)其他笔记本电脑的触摸板配合使用.该怎么办?jQuery没问题.
"什么行不通?" =>使用2个手指时,滚动时没有警报,就像您在浏览器中滚动一样.
Jaq*_*har 15
编辑
经过一些研究,似乎问题实际上是微软的问题.
在EdgeHTML问题跟踪器中有一个关于它的公开问题已经有将近一年了.
基本上它说使用精确触摸板时轮子事件在Edge(和旧的IE版本)中不起作用.
顺便说一句,我不删除其余的答案,因为它仍然相关.wheel无论如何你应该使用.
你应该听听wheel:
window.addEventListener('wheel', mouseWheelEvent);
Run Code Online (Sandbox Code Playgroud)
它取代了双方mousewheel和DOMMouseScroll其现在取消,并通过所有浏览器都支持.
跨浏览器示例:
window.addEventListener('wheel', mouseWheelEvent);
function mouseWheelEvent() {
console.log("Fired");
}Run Code Online (Sandbox Code Playgroud)
<h1>
Hodor!
</h1>
<h1>
Hodor!
</h1>
<h1>
Hodor!
</h1>
<h1>
Hodor!
</h1>
<h1>
Hodor!
</h1>
<h1>
Hodor!
</h1>
<h1>
Hodor!
</h1>Run Code Online (Sandbox Code Playgroud)