Javascript CSS后的Jquery加载
我有(Joomla)一个包含以下元素的网页Javascript CSS后的Jquery加载,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有(Joomla)一个包含以下元素的网页 <section id="sp-top-bar"> <!-- html content --> </section> <section id="sp-footer"> <!-- html content --> </section> 我的jquery代码位于文档的中,在我的template.css文件之后 当我的页面加载时,#sp顶部栏最初会以蓝色闪烁一秒钟,然后成功地
<section id="sp-top-bar">
<!-- html content -->
</section>
<section id="sp-footer">
<!-- html content -->
</section>
我的jquery代码位于文档的
中,在我的template.css
文件之后
当我的页面加载时,#sp顶部栏
最初会以蓝色闪烁一秒钟,然后成功地变为#sp页脚
绿色
我已经看过了源代码,我的模板.css
文件在jquery代码加载之前就被加载了,大概这就是问题所在吧
我能做些什么来避免#sp顶栏中的初始背景色闪烁
谢谢在jQuery中,您可以如下设置背景颜色:
$("#sp-top-bar").css('background-color','#f6f6f6');
(我使用了想象中的灰色f6f6f6)
希望对您有所帮助。在jQuery中,您可以如下设置背景颜色:
$("#sp-top-bar").css('background-color','#f6f6f6');
(我使用了想象中的灰色f6f6f6)
希望这对您有所帮助。您可以尝试隐藏顶部栏,直到所有内容都加载完毕 CSS
#sp-top-bar {
display: hidden
}
$("#sp-top-bar").css({
backgroundColor: bg,
display: 'block'
})
JS
#sp-top-bar {
display: hidden
}
$("#sp-top-bar").css({
backgroundColor: bg,
display: 'block'
})
您可以尝试隐藏顶部栏,直到所有内容都加载完毕 CSS
#sp-top-bar {
display: hidden
}
$("#sp-top-bar").css({
backgroundColor: bg,
display: 'block'
})
JS
#sp-top-bar {
display: hidden
}
$("#sp-top-bar").css({
backgroundColor: bg,
display: 'block'
})
试试这个
$("#sp-top-bar").hide();
$(document).ready(function(){
var brand = $('#sp-footer');
var bg = brand.css('background-color');
$("#sp-top-bar").css({
backgroundColor: bg,
display: 'block'
})
});
试试这个
$("#sp-top-bar").hide();
$(document).ready(function(){
var brand = $('#sp-footer');
var bg = brand.css('background-color');
$("#sp-top-bar").css({
backgroundColor: bg,
display: 'block'
})
});
在这个页面上使用JQuery有点困难,因为JQuery必须等待DOM元素加载到页面中,然后才能更改它。因此,通常会有flash效果,因为标题将使用css中的默认样式 在css中,您可以在呈现标题之前覆盖默认样式。 但是如果必须是JQuery,下面描述的隐藏技巧可能会奏效。或者,您可以插入一个完全定位的标题,其颜色与标题完全重叠,并在页面加载后再次将其删除 但要复制一行css需要做大量的工作 编辑: 另一个角度是在页面加载后使用ajax加载css,但是没有任何样式,这可能比闪烁更糟糕
在所有脚本运行之前,您也可以显示一个完全空白的页面,但这也不是完美的,因为它会被认为是一个“慢加载”页面。使用JQuery进行此操作有点困难,因为JQuery必须等待DOM元素加载到页面中,然后才能更改它。因此,通常会有flash效果,因为标题将使用css中的默认样式 在css中,您可以在呈现标题之前覆盖默认样式。 但是如果必须是JQuery,下面描述的隐藏技巧可能会奏效。或者,您可以插入一个完全定位的标题,其颜色与标题完全重叠,并在页面加载后再次将其删除 但要复制一行css需要做大量的工作 编辑: 另一个角度是在页面加载后使用ajax加载css,但是没有任何样式,这可能比闪烁更糟糕
您也可以在所有脚本运行之前显示一个完全空白的页面,但这也不是完美的,因为它会被认为是一个“慢加载”页面。您介意为此使用
css
解决方案吗?或者您想使用script
?@VilasKumkar我想使用jquery,谢谢。您介意使用css
解决方案吗?或者你想使用script
?@VilasKumkar我想使用jquery,谢谢。你不能右键单击->检查元素以获得css中设置的实际bg颜色值吗?是的,我可以@captain theo,但问题是模板。css文件是在其他地方动态生成的。我需要#sp顶部栏
自动采用模板.css
中设置的背景颜色,而无需我进行任何手动干预。希望这是有道理的。谢谢你。。。好吧,我想你让我措手不及:)我不认为我能提供一个答案。。。Joomla代码有时可能相当(不必要地)复杂…@johnny_也许可以追溯到css文件的生成位置,并为“#sp top bar”添加额外的规则…@johnny_的另一种(jQuery)方法是“获取”动态分配的当前bg颜色,并将其应用到“#sp top bar”。检查这篇文章:难道你不能右键点击->检查元素以获得css中设置的实际bg颜色值吗?是的,我可以@captain theo,但问题是template.css文件是在别处动态生成的。我需要#sp顶部栏
自动采用模板.css
中设置的背景颜色,而无需我进行任何手动干预。希望这是有道理的。谢谢你。。。好吧,我想你让我措手不及:)我不认为我能提供一个答案。。。Joomla代码有时可能相当(不必要地)复杂…@johnny_也许可以追溯到css文件的生成位置,并为“#sp top bar”添加额外的规则…@johnny_的另一种(jQuery)方法是“获取”动态分配的当前bg颜色,并将其应用到“#sp top bar”。查看此帖子: