javascript - Element.focus() + IE 10+ 中的 css 动画定位问题

标签 javascript css internet-explorer

在 IE 11 中遇到了一个奇怪的行为,想看看是否有其他人看到过这个。我在一个容器内有一个输入元素,它具有 height: 0px;overflow: hidden;。另一个元素触发容器上的事件类以通过 CSS 过渡为其赋予一定高度。同一触发器在输入上调用 focus()

在 IE 10 和 11 中,似乎在 CSS 动画期间调用 focus() 会导致输入元素在动画的那个阶段卡住在它的位置。

Here is a fiddle

请注意,在 IE 10+ 中,输入光标偏离垂直中心。如果您从 CSS 中删除过渡,它将居中。

还有其他人看到这个或有更好的解决方案吗?

最佳答案

目前,我的解决方案是将 focus() 调用包装在与 CSS 动画持续时间匹配的 setTimeout 中,以确保焦点不会发生,直到该字段到达过渡的终点。不理想,因为它独立地混合了 CSS 和 JS 值,但它现在可以工作。

关于javascript - Element.focus() + IE 10+ 中的 css 动画定位问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28443104/

相关文章:

javascript - Jquery click() 函数在 Internet Explorer 中不起作用

javascript - 自动将小数点后零数可变的 float 舍入到第一个非零数字

javascript - 如何在 javascript/jquery 事件后更改 Django 中的服务器端数据?

css - 带有剪辑路径 : inset doesn't work in Safari 的动画

javascript - 使用 Javascript 在 <iframe> 中隐藏具有特定类的标签

css - Zurb Foundation 5 Reveal 模态仅在 IE11 中错误定位

javascript - 让浏览器获取源代码并重新编译脚本以进行实时编辑

javascript - 如何在文本区域中的行之间绘制分隔符

javascript - 将 Node.js 请求包装到 Promise 和管道中

html - 如何处理触摸设备上的悬停效果