Javascript幻灯片与随机的第一张图片
Javascript slideshow with random first pic?
我正在尝试设置这个幻灯片脚本,以便显示的第一张图片是随机的(我需要第一张图片是一个不同的/随机幻灯片每次我们去的网站),其余的图片可以显示在正确的顺序,这很好。
我使用Jon Raasch的简单jquery幻灯片脚本,如下所示:
<script type="text/javascript">
function slideSwitch() {
var $active = $('#slideshow DIV.active');
if ( $active.length == 0 ) $active = $('#slideshow DIV:last');
var $next = $active.next().length ? $active.next()
: $('#slideshow DIV:first');
$active.addClass('last-active');
$next.css({opacity: 0.0})
.addClass('active')
.animate({opacity: 1.0}, 1000, function() {
$active.removeClass('active last-active');
});
}
$(function() {
setInterval( "slideSwitch()", 2500 );
});
</script>
<div id="slideshow">
<div class="active"><img src="images/slide1.jpg"></div>
<div><img src="images/slide2.jpg"></div>
<div><img src="images/slide3.jpg"></div>
<div><img src="images/slide4.jpg"></div>
<div><img src="images/slide5.jpg"></div>
</div>
和CSS:
#slideshow {
position:relative;
height:401px;
}
#slideshow div {
position:absolute;
top:0;
left:0;
z-index:8;
opacity:0.0;
}
#slideshow div.active {
z-index:10;
opacity:1.0;
}
#slideshow div.last-active {
z-index:9;
}
我已经尝试了一些东西,但javascript真的不是我的茶("设计师思维"在这里),我所尝试的是不工作。什么好主意吗?
非常感谢!
根据jfriend00的回答,您需要将脚本设置为:
function slideSwitch() {
var $active = $('#slideshow div.active');
if ( $active.length == 0 ) {
var slides = $('#slideshow div');
$active = slides.eq(Math.floor(Math.random() * slides.length));
}
var $next = $active.next().length ? $active.next()
: $('#slideshow div:first');
$active.addClass('last-active');
$next.css({opacity: 0.0})
.addClass('active')
.animate({opacity: 1.0}, 1000, function() {
$active.removeClass('active last-active');
});
}
$(function() {
slideSwitch();
setInterval( function(){slideSwitch()}, 2500 );
});
有一些语法错误,我不得不改变如何调用setInterval
工作小提琴:http://jsfiddle.net/f2UPm/
从HTML中删除活动类,然后用下面的代码设置它,将这一行改为这一行,并调整CSS,以便在JS运行之前没有幻灯片可见:
if ( $active.length == 0 ) $active = $('#slideshow DIV:last');
:
if ( $active.length == 0 ) {
var slides = $('#slideshow DIV');
$active = slides.eq(Math.floor(Math.random() * slides.length));
}
工作演示:http://jsfiddle.net/jfriend00/mpYSL/
像这样:
$(function() {
var slides, index, current, last, last_index;
slides = $('#slideshow div');
// initialize index randomly
index = Math.floor(Math.rand() * slides.length);
// do a % trick to get index - 1 looping
last_index = (index + slides.length - 1) % slides.length;
last = slices[last_index]; // initialize last
function slideSwitch() {
current = slides[index];
index = (index + 1) % slides.length; // % to loop
current.addClass("active");
last.addClass("last-active");
current.css({ "opacity": 0.0 })
.animate({ "opacity": 1.0}, 1000, function() {
current.removeClass("active");
last.addClass("active");
last.removeClass("last-active");
last = current;
});
}
setInterval(slideSwitch, 2500);
slideShow(); // run once now, because interval doesn't run until 2500ms
});
相关文章:
- jm按下停止步骤进入滚动的下一张幻灯片
- 当 Flickity 到达下一张或上一张幻灯片时的事件
- 为什么bxSlider会打断我在最后一张幻灯片和第一张幻灯片之间的转换
- 引导程序3转盘-随机选择下一张幻灯片
- 如何在最后一张幻灯片上停止动画
- Basic jQuery Slider中上一张/下一张幻灯片的自定义链接触发器
- 指向html5库最后一张幻灯片后的html页面
- jQuery 循环 如果只有一张幻灯片,则隐藏上一个/下一个导航
- 如何停止幻灯片放映隐藏文本和图像跳到顶部,而下一张幻灯片进来
- iOS 滑块默认为最后一张幻灯片
- 光滑的滑块删除最后一张幻灯片,如果 winWidth < 500
- BX滑块滑块滑块最后一张幻灯片总是隐藏某些部分
- 如何在显示前在幻灯片放映中预加载下一张幻灯片
- 滑块中显示下一张幻灯片的链接.为什么
- 幻灯片放映-将幻灯片链接到URL,仅适用于最后一张幻灯片
- BxSlider将最后一张幻灯片显示为第一张幻灯片
- 如何在flexslider中单击图像时显示下一张幻灯片
- 停止最后一张幻灯片上的jQuery按钮动画
- 在附加的代码中,图像滑块是如何从一张幻灯片发展到另一张幻灯片的
- 使用shift键并单击可转到下一张幻灯片