问题现象:
在网页上,写了一个弹出层,弹出层可以滚动,在弹出层滚动到最上方或最下方时,接着再往上(下)滚动,则底层的主体(body)页面跟着滚动。
解决:
本来是想通过滚动监听来控制,但后来发现各种阻止无效。
最后是用在弹出层出来时禁用掉body的滚动条[ $(‘body’).css(‘overflow-y’,’hidden’); ]的方式,但需要处理下body滚动条的样式。
关于滚动scroll整理如下:
滚动分为两种滑轮和键盘。
滑轮滚动又会触发mousewheel和scroll事件。
键盘滚动只触发scroll事件。
在实践中,发现 :
scroll 事件既不能 event.stopPropagation 也不能 event.preventDefault ;
mousewheel 事件不能 event.stopPropagation 可以 event.preventDefault ;
查了些资料,感觉最靠谱的是这个:
“为什么scroll不能阻止冒泡,这个我在MDN上找到了答案:上面说,scroll只冒泡到document.defaultView,而且不能cancel掉。”<