在CSS动态加载和呈现后运行javascript

时间:2013-02-14 23:46:01

标签: javascript jquery

我想动态加载css文件,并在文档上的呈现后运行js脚本。我想使用由加载的css设置的元素的新宽度和高度。所以在渲染之后运行js很重要。可能吗?我正在使用jQuery。

2 个答案:

答案 0 :(得分:3)

听起来像是SidJS的工作:

  

SidJS是一个轻量级JavaScript库,允许按需包含JavaScript脚本和CSS样式表。它支持与加载过程相关的回调,以确保您在加载时可以使用的资源可用。

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

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

我不完全确定在执行回调时文档是否有时间重绘,但你应该尝试一下。在最糟糕的情况下,您只需使用setTimeout将逻辑延迟100毫秒。

答案 1 :(得分:1)

我理解你的需要,但我强烈建议只在所有选择失败后再做。

你有多少CSS文件?他们有多不同?

在JS中设置样式甚至用它来加载CSS文件会更好。

另外,如果你需要JS知道从CSS文件加载的样式,JS需要知道这些文件的位置,对吧?提供这些信息而不是文件URL是否更容易?

如果不知道为什么你只知道在页面加载后要加载哪个文件,很难想到替代方案。如果它基于一些用户输入,你可以只为一组类创建一个具有不同样式的CSS文件,并使用JS来更改元素类,从而删除一个类样式并为其应用新的类样式。

始终尝试将所有样式保存在一个独特的文件中,尝试使其保持整洁有序,并始终重复使用。然后使用JS根据需要更改样式,类和元素。