如果我有一个风格overflow: hidden;的div,我发现有时键盘操作会导致div滚动。由于没有滚动条,所以实际上无法使div返回到其原始状态。除了指定样式之外,我还应该做些什么来防止这种情况发生?
例如,当您用鼠标(在小提琴中)选择L时,然后在按住shift键(即展开选择)的同时按下向下箭头键。
http://jsfiddle.net/PeeHaa/H34mM/
或者另一种情况是div中有一个文本区域:http://jsfiddle.net/h6Bhb/1/

最佳答案

一个简单的解决方案是禁用相关元素中的文本选择。因此,无法使用箭头键选择更多..
要防止tekst select,您需要使用js在mousedown事件中event.preventDefault()
对于在符合现代标准的浏览器中可能是这样的小提琴:

// give the div an id
document.getElementById('div').addEventListener('mousedown', function(e) {
    e.preventDefault();
}, false);​

编辑
或者正如@jimthomas在评论中指出的那样,您可以使用css禁用文本选择,当然这并不像js解决方案那么受支持。
How to disable text selection highlighting using CSS?
我想不出一个更优雅或更完整的解决方案(这并不能解决你在输入时可能遇到的问题),我也不确定是否有一个……

09-10 10:29
查看更多