jquery随机更换网页背景

$(document).ready(function(){$("body").css({"background":"url(images/body0_2.png)"+"r... $(document).ready(function(){
$("body").css({"background":"url(images/body0_2.png)"+" repeat-x"+" top"+" center"+" #f7faff"});
$("#skin").click(function(){
var num = Math.floor(Math.random() * 284 + 1);
$("body").css({"background":"url(image/body_"+num+".png)"+" no-repeat"+" top"+" center"+" #fff"});
$("#sk").css({"opacity":".5"});
});
});
当我点击#skin的时候 背景会出现空白,要5-6秒才会出现新的背景图像。
怎样实现背景图像加载完成才执行css
最好可以存入cookies
展开
 我来答
newdot
推荐于2016-05-16 · TA获得超过453个赞
知道小有建树答主
回答量:286
采纳率:100%
帮助的人:263万
展开全部
<script>
$(document).ready(function(){
$("body").css({"background":"url(images/body0_2.png)"+" repeat-x"+" top"+" center"+" #f7faff"});
$("#skin").click(function(){
var num = Math.floor(Math.random() * 284 + 1);
perloadBG(num);
});
});
function perloadBG(n) {
    var img = new Image();
    img.src = 'images/body_' + n;
    img.onload = function () {
        $("body").css({"background":"url(image/body_"+ n +".png)"+" no-repeat"+" top"+" center"+" #fff"});
        $("#sk").css({"opacity":".5"});
    };
}
</script>

以上是给你的一个思路,可以在执行perloadBG的时候增加loading提示等等,抛砖引玉吧。

更多追问追答
追问
我有另一个思路,但是我不会写。
在body里面嵌套一个...
先给.body设定一个背景样式
在点击#skin的时候 把.body的样式给body
然后再给.body设定一个新的值
这样在.body新的背景加载出来之前 body还是会显示之前的图片
等.body加载出来之后直接覆盖住body的背景
追答
如果你单纯实现更换页面背景,建议使用切换stylesheet(css)的方法;抑或在载入页面前一次性预载所有的背景图片。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式