3 回答

TA貢獻1828條經驗 獲得超4個贊
抱歉,據我所知,無法取消任何滾動事件。
無論W3和MSDN說:
Cancelable No
Bubbles No
我認為您必須將這個問題留給瀏覽器作者來解決。Firefox(無論如何,在Linux上為3.5)對我來說似乎都有更好的表現:在您開始使用滾輪時,如果子代已經位于頂端/底端,它只會滾動父代。

TA貢獻1868條經驗 獲得超4個贊
使用簡單的CSS屬性解決了(對于某些瀏覽器):
overscroll-behavior
body{
height: 600px;
overflow: auto;
}
section{
width: 50%;
height: 50%;
overflow: auto;
background: lightblue;
overscroll-behavior: none; /* <--- the trick */
}
section::before{
content: '';
height: 200%;
display: block;
}
<section>
<input value='end' />
</section>
只需將樣式屬性應用到滾動應該“鎖定”到的元素上,滾動事件就不會冒泡到任何可能具有滾動的父元素。
與上面相同的演示,但沒有技巧:
body{
height: 600px;
overflow: auto;
}
section{
width: 50%;
height: 50%;
overflow: auto;
background: lightblue;
}
section::before{
content: '';
height: 200%;
display: block;
}
<section>
<input value='end' />
</section>
添加回答
舉報