方案: 当用户在输入字段中键入并且文本变得比字段宽度长时,文本会在用户键入时滚动 我依靠scrollLeft来获取输入字段上的滚动位置,我最近才意识到这个相同的代码在IE或Edge中无效(它在Chrome,Firefox和Safari中工作)。
调查一下,element.scrollLeft与IE / Edge兼容,但无论出于何种原因,它只在这些浏览器中返回0。我在stackoverflow上看到了与我类似的另一个问题,但似乎没有解决方法。
如何在IE / Edge中获取输入字段的滚动位置?
小提琴:https://jsfiddle.net/kellyag/bwac46yz/8/
function inputScrollPosition () {
let input = document.getElementById('myInput');
let scrollPosition = input.scrollLeft;
console.log(scrollPosition)
};
答案 0 :(得分:2)
我根据此处的讨论找到了解决方法:https://github.com/garysieling/jquery-highlighttextarea/issues/35
解决方法是使用textarea(并将其设置为输入样式)。 当元素是textarea时,element.scrollLeft将起作用。
<textarea id="myInput" cols="50" rows="1" style="white-space: nowrap; overflow: hidden;"></textarea>
此版本仍需要一些额外的CSS样式,但代码正在运行: https://jsfiddle.net/kellyag/ywzus94m/2/