鼠标滚轮无法滚动处理、有滚动条但鼠标中间的滚轮滚动时页面不随之滚动

时间:2024-03-13 15:58:39

问题描述:

鼠标滚轮无法滚动处理、有滚动条但鼠标中间的滚轮滚动时页面不随之滚动

这是一个奇葩的BUG,可能很多人都没见过,度娘都没给出一个好的答案,很多都说是硬件问题,让去设置 Internet - 高级 - 去掉平滑模式前面的勾勾 /谷歌/360/FF 同上所述。

值得一说的是,我的神(zhu)队友这次开始打感情牌了

鼠标滚轮无法滚动处理、有滚动条但鼠标中间的滚轮滚动时页面不随之滚动

-----------------------------------------------------------------------------------------------------------------------

最开始debug阶段以为是bootstrap的灰色遮罩遮住了整体页面导致用户无法手动拖动滚动条

遂改之~

.modal-backdrop.in {
z-index: -1;
display: none;
}


.modal-open .modal {
background: rgba(0, 0, 0, .5);

}

去掉原灰色蒙层样式,改为最大modal背景替换,确保样式与原样式统一

更改后,用户可以手动拖拽滚动条进行上下滑动,完成第一步

但鼠标中间滚动条仍然无法控制页面上下滚动

后经多方考证,改为在body增加如下属性

<body onmousewheel="top.document.body.scrollTop-=event.wheelDelta">

完美解决 PC微信端+谷歌 bootstrap-modal鼠标滚动无法控制页面上下滚动问题

wheelDelta 属性注释如下

当用户通过鼠标滚轮与页面交互、在垂直方向上滚动页面时(无论向下还是向上),就会触发mousewheel事件。这个事件可以在任何元素上面触发,最终会冒泡到document(IE)或window(Opera、Chrome、及Safari)对象。与mousewheel事件对应的event对象包含鼠标事件的所有标准信息之外,还包含一个特殊的wheelDelta属性。当用于向前滚动鼠标滚轮时,wheelDelta是120的倍数;当用户向后滚动鼠标滚轮是,wheelDelta是-120的倍数