动态加载并呈现CSS后运行javascript

动态加载并呈现CSS后运行javascript,javascript,jquery,Javascript,Jquery,我想动态加载css文件,并在css呈现在文档上后运行js脚本。我想使用一个元素的新宽度和高度,它是由加载的css设置的。。因此,在渲染后运行js非常重要。可能吗?我正在使用jQuery。听起来像是针对以下人员的工作: SidJS是一个轻量级JavaScript库,允许用户根据需要包含JavaScript脚本和CSS样式表。它支持绑定到加载过程的回调,以确保加载的资源在需要时可用 换句话说,您请求一个样式表并提供一个回调函数。在加载样式表时执行回调函数。例如: Sid.css("my-sheet.

我想动态加载css文件,并在css呈现在文档上后运行js脚本。我想使用一个元素的新宽度和高度,它是由加载的css设置的。。因此,在渲染后运行js非常重要。可能吗?我正在使用jQuery。

听起来像是针对以下人员的工作:

SidJS是一个轻量级JavaScript库,允许用户根据需要包含JavaScript脚本和CSS样式表。它支持绑定到加载过程的回调,以确保加载的资源在需要时可用

换句话说,您请求一个样式表并提供一个回调函数。在加载样式表时执行回调函数。例如:

Sid.css("my-sheet.css", function() {
    // Perform your width/height logic here.
});

我不完全确定在执行回调时文档是否有时间重新绘制,但您应该尝试一下。最坏的情况是,您只需使用
setTimeout

将逻辑延迟100ms左右。我理解您的需要,但我强烈建议只有在所有备选方案都失败后才这样做

你有多少CSS文件?它们有什么不同

在JS中设置样式甚至比使用它加载CSS文件更好

另外,如果您需要JS知道从CSS文件加载的样式,JS需要知道这些文件在哪里,对吗?提供这些信息而不是文件URL不是更容易吗

在不知道确切原因的情况下,很难考虑其他选择,因为只有在页面加载之后,您才能知道要加载哪个文件。如果它是基于一些用户输入的,那么您可以为一组类创建一个具有不同样式的CSS文件,并使用JS更改元素类,从而删除一个类样式并对其应用新的类样式


始终尝试将您的所有样式保存在一个唯一的文件中,尝试将其组织和紧凑,并尽可能重复使用。然后使用JS根据需要更改样式、类和元素。

将Javascript代码放在CSS之后?我想用JS以友好方式加载CSS,因此,这不是一个选项。可能最好使用这个第三方javascript库来实现这一目标-原因是动态附加.css文件在旧IE中有一个棘手的问题-您无法侦听css可用后调用的任何加载事件,为了确保回调函数在正确的时间被调用,您必须做一些非常重要的事情。SidJS将确保这一点,因此您不必担心。无需设置setTimeoutSid已经在创建setTimeout并每隔100ms检查样式表是否在DOM中可用-但它仅在绝对必要时才这样做谢谢!我的项目只针对具有强大HTML5和CSS3支持的现代浏览器,否则,使用setTimeout不是问题。稍后我将尝试SidJS。谢谢,我知道,这有点像是对文档的黑客攻击,但我的目标是使项目更易于使用。因此,用js传递CSS听起来是最好的主意。