这是 IE 特有的错误,我正在寻找解决方法。
当我将 CSS transform: translate
应用于具有焦点的文本输入时,将 transition
设置为有效的内容,光标停留在旧位置,而元素移动。
一旦您开始输入,它就会移动到正确的位置,但在此之前,光标会在旧位置顽固地闪烁。
此代码说明了问题...同样,这是一个特定于 IE 的错误。
var toggleTop = function(){
$('.input-container').toggleClass('top');
$('#the-input').focus();
}
$('#the-button').click(toggleTop);
.input-container {
top: 100px;
left: 100px;
position: fixed;
transition: all 1s;
}
.input-container.top {
transform: translateY(-100px);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='input-container'>
<input type='text' id='the-input'></input>
</div>
<button id='the-button'>Click Me!</button>
最佳答案
一年过去了,我也遇到了这个问题。这是我用来修复它的 angular.js 指令,基于接受的答案的代码和解释。
angular.module('my.directive')
.directive('custom-auto-focus', function ($timeout) {
return {
link: function (scope, elm) {
$timeout(function() {
elm[0].focus();
}, 350);
}
};
});
关于javascript - CSS 转换后光标在 IE11 中的错误位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26617849/