2015-01-31 60 views
0

我想通过使用jquery加载一个随机背景图像。下面是我正在使用的脚本,它在刷新时显示随机背景,但没有淡入效果。我如何创建淡入效果onload。注意:我不想循环随机图像。在加载背景图像中淡入淡出

$(document).ready(function() { 
    var images = ['01.jpg', '02.jpg', '03.jpg', '04.jpg', '05.jpg', '06.jpg', '07.jpg', '08.jpg', '09.jpg', '10.jpg']; 

    $('.about').css({'background-image': 'url(../img/bg/' + images[Math.floor(Math.random() * images.length)] + ')'}); 
    ('.about').fadeIn(1000); 
}); 
+1

您添加另一个美元符号,并在您尝试淡化它之前隐藏该元素 – adeneo 2015-01-31 21:04:57

+0

此外,图像在元素已褪色时可能不会加载。特别是当图像很大时。 – Mouser 2015-01-31 21:07:57

+0

我添加了美元符号,但它现在仍在工作。 – Khurram 2015-01-31 21:08:05

回答

3

$(document).ready(function() { 
 
    var images = ['http://funmozar.com/wp-content/uploads/2014/09/Beautiful-Yellow-Birds-06.jpg', 'http://petblaster.com/images/Birdwall.jpg', 'http://www.nscblog.com/wp-content/uploads/2014/04/birds-314989.jpg']; 
 

 
    var url = images[Math.floor(Math.random() * images.length)]; 
 
    var img = new Image(); 
 
    img.onload = function(){ 
 
    $('.about').css({'background-image': 'url('+url+')', 'background-size' : 'contain'}); 
 
    $('.about').fadeIn(1000); 
 
    } 
 
    img.src = url; 
 
    
 
    
 
});
.about{ 
 
    width: 400px; 
 
    height: 400px; 
 
    display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<div class="about"></div>

这将使用new Image预载图像。附有onload。当他加载时,它会将背景设置为.about div并淡入。

我已更改网址以实际显示一些结果。

+0

甜蜜的工作没有任何问题。非常感谢 – Khurram 2015-01-31 21:33:50