Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 随机背景准备就绪_Javascript_Random_Background - Fatal编程技术网

Javascript 随机背景准备就绪

Javascript 随机背景准备就绪,javascript,random,background,Javascript,Random,Background,这很简单,但我不是程序员。我只是用一般的问题解决技巧来暴力破解代码。这是行不通的。这段代码被设置为随机化背景图像,并且可以正常工作。但是,它被设置为等待页面完全加载,因此它的计时太不一致。据我所知,document.ready会给我提供更一致(更快)的时间安排,但我似乎无法让它工作。以下是工作版本: <script type="text/javascript"> function changeImg(imgNumber) { var myImages =

这很简单,但我不是程序员。我只是用一般的问题解决技巧来暴力破解代码。这是行不通的。这段代码被设置为随机化背景图像,并且可以正常工作。但是,它被设置为等待页面完全加载,因此它的计时太不一致。据我所知,document.ready会给我提供更一致(更快)的时间安排,但我似乎无法让它工作。以下是工作版本:

<script type="text/javascript"> 
    function changeImg(imgNumber) { 
        var myImages = [
            "http://static.tumblr.com/0obftwk/u0Am8xfjf/streetarturbaninphilade.jpg",
            "http://static.tumblr.com/0obftwk/Xmym8xfet/artmuseumarea.jpg",
            "http://static.tumblr.com/0obftwk/znNm8xf9e/rowhouseswestphilly.jpg",
            "http://static.tumblr.com/0obftwk/af1m8xf87/phillyvista.jpg",
            "http://static.tumblr.com/0obftwk/ydIm8xf74/chinagatephiladelphia.jpg",
            "http://static.tumblr.com/0obftwk/8kCm8xf41/broadritner.jpg"
        ]; 
        var imgShown = document.body.style.backgroundImage; 
        var newImgNumber =Math.floor(Math.random()*myImages.length);
        document.body.style.backgroundImage = 'url('+myImages[newImgNumber]+')'; 
    }   

    window.onload=changeImg;
</script>

函数更改img(imgNumber){
var myImages=[
"http://static.tumblr.com/0obftwk/u0Am8xfjf/streetarturbaninphilade.jpg",
"http://static.tumblr.com/0obftwk/Xmym8xfet/artmuseumarea.jpg",
"http://static.tumblr.com/0obftwk/znNm8xf9e/rowhouseswestphilly.jpg",
"http://static.tumblr.com/0obftwk/af1m8xf87/phillyvista.jpg",
"http://static.tumblr.com/0obftwk/ydIm8xf74/chinagatephiladelphia.jpg",
"http://static.tumblr.com/0obftwk/8kCm8xf41/broadritner.jpg"
]; 
var imgShown=document.body.style.backgroundImage;
var newImgNumber=Math.floor(Math.random()*myImages.length);
document.body.style.backgroundImage='url('+myImages[newImgNumber]+');
}   
window.onload=changeImg;

如果在加载页面之前已知图像列表,请在CSS中粘贴对图像的引用,然后只需更改document.body上的类名即可

.bgClass1 {background-image: url(http://static.tumblr.com/0obftwk/u0Am8xfjf/streetarturbaninphilade.jpg)}
。。。等等

<body class="bgClass1">


否则,使用js构建一个预加载程序,您可能需要
document.onload
而不是
window.onload
也许您可以在body标记之后插入内联,然后在那里调用changeImg(),而不是将其附加到(太晚)发生的事件处理程序。很酷的图片,顺便说一句。谢谢,内噬,但简单地将“窗口”改为“文档”是行不通的。也许你的建议比我解释的内容更重要Chelmerisch,首先,这些图片是“Lorem ipsum”,我正在为费城建立一个(基于Tumblr的)网站。它们不是我的,当我有自己合适的图像时,我会替换它们。至于你的建议,我明白这个概念,但我不确定我将如何执行它。在我在这里发布之前,我试图简单地删除onLoad,但是脚本完全停止了工作。再说一遍,我不是一个程序员,也没有背景知识来理解为什么。嗯……如果我完全理解这一点,你的命题意味着一个更简单的脚本,它几乎将“body”的类别随机化。这就是要点吗?如果是这样的话,有没有一个简单的原因可以解释为什么这样做更可取?你可以依靠CSS来加载图像,而不是到处乱搞javascript预加载程序——你基本上解决了没有加载的问题。同样,只有当您知道所包含的图像时,这才有效。祝你好运