刷新闪烁时的随机背景(汤博乐)
Random Background on Refresh Flicker (Tumblr)
我一直在尝试在我的汤博乐主题上获得一个有效的"刷新时的随机背景"。对于那些不知道的人来说,汤博乐主题是由嵌入CSS和JavaScript的HTML组成的。
现在,我正在使用这个脚本:
<script type="text/javascript">
var bg1 = 'http://i.imgur.com/image1.jpg';
var bg2 = 'http://i.imgur.com/image2.jpg';
var bg3 = 'http://i.imgur.com/image3.jpg';
var bg4 = 'http://i.imgur.com/image4.jpg';
var bg5 = 'http://i.imgur.com/image5.jpg';
var randBG=[bg1,bg2,bg3,bg4,bg5];
window.onload=function() {
num=Math.floor(Math.random()*randBG.length);
document.body.style.background='url('+randBG[num]+') no-repeat center center fixed';
</script>
它有效,但它会导致屏幕闪烁,并使我的"背景大小:封面"属性无效。我尝试过图像预加载,但没有成功。汤博乐不支持php,我也没有办法托管要链接到的php文件。
所以,有两件事。如何在刷新时随机化背景而不出现屏幕闪烁,并在此过程中维护以下CSS属性
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
首先,闪烁取决于预取和背景图像的大小。因此,如果背景图像很大,它就不会与文档同时准备好。其次,在load
事件上调用它意味着在加载后台之前,您要等待所有内容都加载到屏幕上,因此,您要增加延迟。第三,正如我在评论中所说,您在Javascript中破坏了background-size
,因此需要采取不同的做法。
以下是我所做的。
CSS代码段
<style>
...
body {
background: url('') no-repeat center center fixed;
-moz-background-size: cover;
background-size: cover;
}
...
</style>
Javascript
<script type="text/javascript">
$(document).ready(function(){
var bg1 = 'http://i.imgur.com/enkkn.jpg';
var bg2 = 'http://i.imgur.com/BZBke.jpg';
var bg3 = 'http://i.imgur.com/QOvQH.jpg';
var bgs = [bg1, bg2, bg3];
var num = Math.floor(Math.random() * bgs.length);
var bg = new Image();
bg.src = bgs[num];
$(bg).load(function(){
document.body.style.backgroundImage = "url(" + this.src + ")";
});
});
</script>
注意:这些背景图像实际上是巨大的,我不建议使用那么大的东西。保持它们的压缩和小,以便更快地加载。
我使用jQuery是因为它能够在$(document).ready
事件触发后立即运行,也就是说,一旦文档在后台准备好,它就会触发。我也会等到图像真正加载使用,然后才将其作为背景图像。我不相信你能完全消除闪烁,但我认为这会有所帮助。
相关文章:
- 覆盖“;X-Robots-Tag:noindex“;在汤博乐
- 使用类似汤博乐的<a>链接
- 制作汤博乐登录页
- 刷新闪烁时的随机背景(汤博乐)
- 每天更改我的汤博乐主题的颜色属性
- 突出显示汤博乐中的当前页面菜单链接
- 汤博乐共享按钮不工作
- 汤博乐风格的用户悬停卡片
- 如何用汤博乐实现Packey库
- Wookmark脚本使我的汤博乐主题也向左滚动
- 汤博乐图片取消限制
- 如何在<hr/>像HTML中的汤博乐一样标记
- 谷歌社交互动分析与汤博乐分享按钮
- 汤博乐图片集字幕无法使用放大弹出菜单
- 汤博乐:删除“阅读更多”链接
- 汤博乐上的移动设备检测
- 垂直居中汤博乐布局
- 用InoReader(RSS阅读器)中的较大版本替换汤博乐、Pinterest和Flickr图片
- 汤博乐主题javascript
- 在汤博乐主题上使用jQuery删除特定的HTML