问题描述
|
我正在尝试使用JQuery进行背景图片幻灯片演示。
我在这里找到了一个有趣的例子:
创建背景图像的JQuery幻灯片
那是:
$(function() {
$(\"#bannerTable\").loadBGImage();
setInterval(\'$(\"#bannerTable\").loadBGImage()\',5000);
});
$.fn.loadBGImage = function() {
var images = [\"home_photo_welshboy.jpg\",\"home_photo_jam343.jpg\",\"home_photo_xdjio.jpg\",\"home_photo_ccgd.jpg\"];
var image = images[Math.floor(Math.random() * images.length)];
return this.each(function() {
var $obj = $(this);
$obj.fadeOut(500,function() {
$obj.css(\'background\',\'url(http://l.yimg.com/g/images/\' + image + \')\').fadeIn(500);
});
});
}
我想改变一些事情,但似乎无法改变。
首先,我希望幻灯片放映加载下一张图像,而不是随机图像。其次,我需要div的子元素始终可见,并且不与父元素一起消失。
有关如何执行此操作的任何提示?
解决方法
最简单的方法:创建一个全局变量。
var currentPic = 0;
$(function() {
$(\"#bannerTable\").loadBGImage();
setInterval(\'$(\"#bannerTable\").loadBGImage()\',5000);
});
$.fn.loadBGImage = function() {
var images = [\"home_photo_welshboy.jpg\",\"home_photo_jam343.jpg\",\"home_photo_xdjio.jpg\",\"home_photo_ccgd.jpg\"];
var image = images[currentPic];
currentPic = (currentPic+1)%images.length; //loop once you reach last pic.
[...]
其次,在隐藏父母的情况下,根本不可能让孩子可见。举个例子:
<div style=\"display:none\">hide me<span style=\"display:block\">show me</span></div>
子项将被隐藏,因为它位于父项内部。要解决此问题,您可以使他们成为新父母(<div><div /><span /></div>
)中的兄弟姐妹。