javascript - CSS 转换后光标在 IE11 中的错误位置

标签 javascript css transform internet-explorer-11 translate-animation

jsfiddle here

这是 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/

相关文章:

css - 将 <p> 限制在带有 CSS 的 Angular <div> 的边界(附加 JSFiddle 链接)

javascript - 如何针对某个 div(而不是整个页面)运行 queryCommandState?

jquery - 如何让我的 iframe 适合整个页面而不是使用滚动条

java - 使用裁剪旋转图像

javascript - 使用 jquery 检查是否正在播放 HTML5 视频

html - 我应该使用 DIVS 还是显示 : table?

jquery - 带有 mousemove 的交互式背景 mask (jQuery、CSS)

javascript - 在 jQuery 中添加和删除类的三种方式切换

javascript - WordPress - Google Map API 标签/进度图 + BuddyPress 成员(member)数

javascript - 允许非所有者运行更改 Google 表格中保护设置的脚本?