3 回答

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

TA貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個(gè)贊
使用簡單的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>
只需將樣式屬性應(yīng)用到滾動(dòng)應(yīng)該“鎖定”到的元素上,滾動(dòng)事件就不會(huì)冒泡到任何可能具有滾動(dòng)的父元素。
與上面相同的演示,但沒有技巧:
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>
添加回答
舉報(bào)