Похоже, что когда вы используете overflow: hidden
в Edge, событие 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>