jQuery根据特定文件夹设置的间隔淡入不同的背景图像

我想将身体背景淡化为间隔设置的特定文件夹中的其他图像。 我有脚本来运行setInterval,但它根本不会改变背景图像,事实上它甚至不会改变为空白图像。 图像位于具有script.js文件的文件夹中(调用以下脚本的文件相同)。 我正在运行一个简单的随机数发生器来确定要运行的文件(文件名为1,2,3,4.jpg等)。

如果我可以预加载图像将是理想的,但我想这是另一个问题:

$(document).ready(function() { var image; function changeImage() { image = Math.floor(Math.random() * 2) + 1; $("body").css("background-image",image+".jpg"); } setInterval(changeImage, 3000); }); 

你可以将jQuery扩展为:

 $.fn.preload = function() { this.each(function(){ $('')[0].src = this; }); } 

现在您可以通过以下方式预加载图像:

 $(['1.jpg','2.jpg','3.jpg','4.jpg']).preload(); 

和你的代码来改变背景可能看起来像

  $(document).ready(function() { var image; function changeImage() { image = Math.floor(Math.random() * 2) + 1; $("body").css("background-image","url('" + image+ ".jpg')"); } }); setInterval(changeImage, 3000); 

看起来你正在为background-image设置属性,但是没有指定url,试试这个:

 $("body").css("background-image","url(" + image+ ".jpg)"); 

或另一种选择

 image = Math.floor(Math.random() * 2) + 1; image = "url(" + image + ".jpg)" $("body").css("background-image",image); 

你在url中使用这个没有双人床的jQuery,并使用background-image的背景

 image = Math.floor(Math.random() * 2) + 1; $("body").css({background:"url(" + image + ".jpg)"})