我們正在研究一個文本編輯器(基於textarea),它將「畫布」移動到右側以顯示左側的菜單。非常標準的幻燈片顯示菜單。防止Chrome強制將光標滾動到視圖中
菜單是一個文檔列表,當你點擊一個文檔時,textarea被選定的文檔文本填滿,光標通過selectionRange/Range被設置爲最後保存的位置。
這裏變得很時髦:textarea的一部分在屏幕的右側,如果光標放置在那裏(甚至在那附近),Chrome會將canvas div滾動到左側,儘管位置爲:relative。
有什麼辦法可以防止這種情況發生?
HTML:
<body>
<div id="wrapper">
<div id="canvas>
<textarea>
</div>
</div>
</body>
CSS:
#wrapper {
position: absolute;
left: 300px; /* set via js, to show the menu */
right: 0;
overflow: hidden;
}
#canvas {
position: relative;
width: 1440px; /* viewport width set via js */
}
textarea {
width: 100%; /* this properly relates to the fixed width canvas parent */
}
除了刪除滾動條之外,沒有真正的方法可以防止滾動。 – adeneo 2014-11-08 13:46:54
未將'#canvas'的設置位置固定爲一個選項嗎? – 2014-11-08 14:03:19
不幸的是,如果文檔長度比視口高度長等,這會搞亂很多其他的東西,比如垂直滾動。 – Bruno 2014-11-08 14:09:37