jQuery的css方法是否阻止,直到完全应用更改
Does jQuery's css method block until the change is fully applied?
我有一些计算,我想在使用jQuery的css
函数应用CSS更改后执行。此方法是否等到完全应用 CSS 更改,完成重新绘制的元素?
使用 JavaScript 修改样式是一种同步行为。更新元素的类、ID 和内联样式将立即对元素生效,您可以安全地获取该元素的新尺寸或样式。
话虽如此,各种浏览器中有一些利基错误,除非进行非常具体的样式更改,否则不会进行重新绘制。同样,布局的重新计算是同步进行的,但您可能需要执行其他工作来强制重新绘制。
你会在不同的浏览器中看到不同的行为,因为jQuery使用内联样式更新标记,浏览器决定何时重新绘制。 例如,IE似乎会错过很多后续的样式更改间隔 - 它似乎等待了一点时间才能安定下来,但我怀疑这只是渲染引擎的本质。Firefox和Chrome的更新会更快一些。
问题:您是否在使动画顺利执行时遇到困难? 看看步骤:动画中的事件。
我使用了类似于@bfavaretto建议的 setInterval 和 clearInterval 来管理 IE 动画上的单个帧补间,因为它对绘制连续更新犹豫不决 - 尤其是使用 jQuery UI 进度条之类的。
您的问题的真正答案是否定的,它不会等待,即使应该等待,因为操作似乎是同步的 - 代码明智。
如果你想在设置 css 规则后立即做某事,你需要使用持续时间为 0
的 jQuery animate
函数:
$('#my-selector').animate({
'my-css-property-name': 'my-css-property-value'
}, {
duration: 0,
done: function(animation, jumpedToEnd) {
// Your callback here
}
})
要了解有关done
函数参数的更多信息,请查看文档。
相关文章:
- 如果文本字段为空,则使用JavaScript应用CSS样式
- 如果30秒未单击,请应用CSS一次,将其删除,然后重新迭代
- 如何通过按键激活按钮应用CSS效果
- Jquery添加一个类之后,如何应用css
- 通过JS添加类时应用CSS转换
- 如何在不链接/jquery的情况下使用方法应用css属性数组
- 如何在页面刷新后使用 jquery 应用 CSS(刷新前构建 CSS)
- AngularJS - 在第一个可见元素上应用 CSS 类(Preferred No JQuery)
- Angular js ng repeat与条件ng类不应用css类
- 点击时在元素上应用css样式,独立于父级
- 如何在react组件上应用css样式
- 使用skel框架构建的响应式网站只有在使用漂亮的URL时才能应用css
- 当使用查询字符串时,我如何应用css
- 选择框在应用 css/javascript 时失去功能
- 使用 setLabel 方法对冻结列的标题应用 CSS
- 如果文件名取自用户,则不应用 CSS 规则
- 对匹配的文本应用 CSS
- 在我的JavaScript中应用CSS
- 如何调试正在应用 css 的 html 代码
- 如何计算应用 CSS 转换矩阵的 DOM 元素的边界矩形大小?不使用 Element.getBoundingClient