JQuery.ready为时已晚:如何在渲染之前使用JQuery应用CSS值?
我希望能够将不透明度应用于某些元素,以便仅在启用javascript时才使它们不可见。 我不想使用display:none
因为我希望布局就好像它们在DOM中一样,所以将opacity设置为0是完美的。
我希望能够使用JQuery使用JQuery设置此初始值,因此我不必混淆浏览器在不透明度(以及许多其他)属性上的差异。 但如果我像这样将不透明度设置为0:
$(document).ready(function() { $("#header").css("opacity", 0); $("#header").animate({opacity:1}, 500); });
…它已经在屏幕上可见的一半时间显示并消失。
如何在使用JQuery渲染之前设置这些css值?
寻找一个仅限JQuery的解决方案,所以我不必手动处理每个浏览器实现,如下所示:
#header { -moz-opacity:.50; filter:alpha(opacity=50); opacity:.50; }
只需在CSS文件中将不透明度设置为0即可。 要覆盖无脚本,请将以下内容添加到您的头部:
更新 :由于这不是一个选项,下一个选项是在#header
元素之后直接执行脚本。
为什么不用
#header { visibility: hidden; }
然后在头部的一个noscript
问题是,渲染开始后几乎总会发生JavaScript执行,除非您执行表格黑客攻击,直到页面完全下载为止。 但是你会惹恼你的用户,你应该被枪杀。
你要的是一些在不烦扰用户的情况下无法可靠地完成的事情。 因此,更好的选择是惹恼开发人员,并做一些额外的工作。