为了账号安全,请及时绑定邮箱和手机立即绑定

如何强制WebKit重新绘制/重绘以传播样式更改?

如何强制WebKit重新绘制/重绘以传播样式更改?

炎炎设计 2019-06-18 10:45:12
我有一些琐碎的JavaScript来进行样式更改:sel = document.getElementById('my_id');sel.className = sel.className.replace(/item-[1-9]-selected/,'item-1-selected');return false;这适用于FF、Opera和IE的最新版本,但在Chrome和Safari的最新版本上却失败了。它影响到两个后裔,他们碰巧是兄弟姐妹。第一个同级更新,但第二个更新不更新。<a>中包含上述代码的onClick属性。在Chrome“Developer Tools”窗口中,如果我轻推(例如,取消检查和检查)任何属性任何元素时,第二个同级更新为正确的样式。有没有一种变通方法可以轻松地以编程的方式“推动”WebKit去做正确的事情呢?如何强制WebKit重新绘制/重绘以传播样式更改?
查看完整描述

3 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

我遇到了一些非常奇怪的问题:webkit根本不绘制一些元素;输入中的文本直到onblur才更新;更改className不会导致重绘。

我意外地发现,我的解决方案是在脚本之后向主体添加一个空样式元素。

<body>...<script>doSomethingThatWebkitWillMessUp();</script><style></style>...

修好了。这有多奇怪?希望这对某人有帮助。


查看完整回答
反对 回复 2019-06-18
  • 3 回答
  • 0 关注
  • 357 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信