CSS和Javascript之间的顺序是什么

What is the sequencing between CSS and Javascript

本文关键字:顺序 是什么 之间 Javascript CSS      更新时间:2023-09-26

我有一个奇怪的间歇性错误,它发生在填充嵌入到滑动器中的列表之后。从本质上讲,我得到了列表的最后一个元素在页脚上的溢出。

奇怪的是,它出现在我插入最后一个淋巴结后的一段时间内,事实上是在我调用了刷血肾素激活剂之后。

如果我触发了一个调整大小事件,它会自行修复——但前提是我在调用滑动器重新初始化后等待500毫秒到2秒。

为了让这一切变得非常有趣,重叠的数量一直在变化。

这让我想知道,我看到的是不是javascript填充列表并调用swipper reinit,然后在firefox和chrome内部的某个地方应用了所有的样式,这导致了溢出。

我真的不想使用与计时器相关的触发器,因为用户的CPU速度不同。我不想用一个持续尝试直到它发生——因为有时它根本不会发生。

不管怎么说,有人有60秒的关于CSS何时应用于javascript的讲座吗?是否会有什么事件告诉它已经完成,这样我就可以在调整大小后检查div了?

通过CSS样式表应用CSS样式时没有延迟。样式在重新绘制或重新发布之前应用。无需等待CSS样式表规则的应用,除非您正在动态加载样式表或将其放在受其影响的HTML之后。

我的猜测是,在更改的内容被正确布局之前,刷程序重新初始化程序中的某个东西正在做一些事情。延迟允许布局发生,所以下次调整大小时,它会自行修复。

在看不到真正发生了什么(可能是在一个工作网页中),也不了解更多关于刷码的信息的情况下,我们所能做的就是猜测。我的猜测是,布局必须在修改列表之后和重新初始化之前进行。有几种方法可以通过请求浏览器知道在布局发生之前不准确的某些属性来强制布局。在调用fn回调之前,等待用setTimeout(fn, 1)重新绘制也会触发任何挂起的布局,并且setTimeout()中的任何时间值都会起作用,因为只需等待setTimeout()激发就可以进行重新绘制。

您可以在本文中看到如何触发布局(请求任何这些属性offsetTop, offsetLeft, offsetWidth, offsetHeight, scrollTop/Left/Width/Height, clientTop/Left/Width/Height)。