我希望有人能救我!我正在尝试为我的页面创建一个(希望)简单的旋转横幅。我有7个包含照片和文本的div,如下所示:
<div id="content-1">Sample text</div>
<div id="content-2">Sample text</div>
<div id="content-3">Sample text</div>
<div id="content-4">Sample text</div>
<div id="content-5">Sample text</div>
<div id="content-6">Sample text</div>
<div id="content-7">Sample text</div>在这些div下面,我有7个对应的div,它们是缩略图:
<div id="thumb-content-1">Sample text</div>
<div id="thumb-content-2">Sample text</div>
<div id="thumb-content-3">Sample text</div>
<div id="thumb-content-4">Sample text</div>
<div id="thumb-content-5">Sample text</div>
<div id="thumb-content-6">Sample text</div>
<div id="thumb-content-7">Sample text</div>我想做几件事:
1)每隔5秒循环一次新的div (因此"content-1“将显示5秒,然后是"content 2”,依此类推。
2)在当前缩略图上应用一个名为cr-rotator的类。我已经设置好样式了。
3)我希望能够在用户将鼠标悬停在主div或缩略图div上时暂停它的旋转。
4)最后,我希望它能让你将鼠标悬停在缩略图上,它会改变主要内容,然后在鼠标离开时继续循环。比方说,你将鼠标悬停在“thumb-content-3”上,它将使div“content-3”可见,然后当你把鼠标移出时,它将继续循环。
我知道这里有很多需求,我要提前感谢任何能帮助我的人。我已经被提供了一个在主图像之间循环的脚本,但我不确定如何实现其余的:
var divs = $('div[id^="content-"]').hide(),
i = 0;
(function cycle() {
divs.eq(i).fadeIn(200)
.delay(3000)
.fadeOut(200, cycle);
i = ++i % divs.length; // increment i,
// and reset to 0 when it equals divs.length
})();非常感谢任何能帮助我的人。
发布于 2012-01-23 17:51:44
Fade rotator - Demo on jsBin
<div id="rotator">
<div id="slides">
<div>Sample text 1</div>
<div>Sample text 2</div>
<div>Sample text 3</div>
</div>
<div id="thumbs">
<div>1</div>
<div>2</div>
<div>3</div>
</div>
</div>fade
和jQ代码:
var $el = $('#fader'),
// SETUP ////////
F = 600 , // Fade Time
P = 2000 , // Pause Time
C = 0 , // Counter / Start Slide# (0 based)
///////////////////
$sl = $('#slides > div'),
$th = $('#thumbs > div'),
N = $sl.length,
T = null;
$sl.hide().eq(C).show();
$th.eq(C).addClass('on');
// ANIMATION
function anim() {
$sl.eq(C%N).stop(1).fadeTo(F,1).siblings().fadeTo(F,0);
$th.removeClass('on').eq(C%N).addClass('on');
}
// AUTO ANIMATE
function autoAnim() {
T = setTimeout(function() {
C++;
anim(); // Animate
autoAnim(); // Prepare another iteration
}, P+F);
}
autoAnim(); // Start loop
// HOVER PAUSE
$el.hover(function(e) {
return e.type==='mouseenter'? clearTimeout( T ) : autoAnim();
});
// HOVER THUMBNAILS
$th.on('mouseenter', function() {
C = $th.index( this );
anim();
});发布于 2012-01-23 09:32:53
实现所需功能的最简单方法是使用Malsup的Cycle插件。转到http://jquery.malsup.com/cycle/并下载脚本,然后查看他提供的文档齐全的演示。使用Cycle让你有机会利用大量不同的选项,这将花费你永远的时间来手工编写代码。
https://stackoverflow.com/questions/8966117
复制相似问题