【发布时间】:2020-02-13 08:57:39
【问题描述】:
看来,当您在 Edge 上使用 overflow: hidden 时,当您使用触摸板滚动时,事件 mousewheel 不再被触发(鼠标中键仍然有效)。此问题仅在使用 Edge 和 Internet Explorer 时出现。
以下脚本记录每个mousewheel 事件应发生的滚动距离。 (在使用 chrome 和 firefox 时有效)。
document.querySelector("#out").addEventListener("mousewheel", function(event) {
if (event.defaultPrevented) return;
if (event.shiftKey) {
if (event.deltaX || event.deltaY) {
move(0, event.deltaX || event.deltaY);
event.preventDefault();
}
return;
}
console.log(event.deltaY, event.deltaX);
event.preventDefault();
}, {
passive: false
});
#out {
width: 200px;
height: 200px;
overflow: hidden;
}
<div id="out">
<div id="in">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec facilisis tortor ultricies nibh mollis scelerisque. Proin eget mauris sollicitudin, eleifend lorem nec, aliquam justo. Pellentesque commodo ante nec finibus porta. Nam lobortis tempus ultrices. Ut ultrices, enim eget sodales eleifend, enim ipsum tincidunt nisl, ut tempor justo ante non nisi. Etiam ut ex non justo pellentesque posuere. Nulla sollicitudin massa viverra sapien congue, quis faucibus nisl aliquam. Duis ac fringilla eros. Vestibulum pretium, sem pulvinar consectetur ornare, urna justo vestibulum ligula, ullamcorper dignissim lectus velit quis turpis. Proin eu risus justo. Sed at nibh ac tortor rutrum mollis sagittis bibendum leo. Nunc feugiat mauris nec volutpat vestibulum. Phasellus ultricies, lacus sit amet posuere dapibus, nibh ligula pellentesque ligula, vitae congue massa ipsum sit amet velit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris vel aliquet enim. Donec in lorem consequat, ullamcorper lectus sed, consectetur augue.
</div>
</div>
【问题讨论】:
标签: javascript mouseevent microsoft-edge