目前我需要为<div>
制作一个滑块。但是由于大多数插件的大小,我试图创建自己的jquery脚本,因为我只需要基础知识。但说实话,我真的是jQuery的初学者,可以使用一些帮助。
目前我获得<div>
作为容器(overflow:hidden
和250px宽度),<div>
我得到了另一个<div>
,需要从右边移动到$(document).ready
左边(宽度2500px)。我希望<div>
函数上的div以左边250px的步长动画,间隔为5秒。但是整个上午花了整整一个小时试图找出从哪里开始我仍然被卡住了。
此外,我还想要以下选项:
我知道这是一个很大的(难的)问题,但即使是一点点的帮助也会非常受欢迎。
答案 0 :(得分:3)
这是我创建的符合您要求的演示:little link。 jQuery / JavaScript已完全注释以供参考,但如果任何部分需要额外的详细说明,我很乐意解释更多!
答案 1 :(得分:1)
使用正确的程序更新了您的JSFiddle
<强> fiddle demo 强>
答案 2 :(得分:1)
<强> HTML:强>
<div id="slider">
<div id="slider_cont">
<div id="slide">
<!-- wide content here -->
</div>
</div>
<div id="dots"><!--leave empty--></div>
</div>
<强> CSS:强>
#slider_cont{
width:250px;
height:180px;
position:relative;
background:#eee;
overflow:hidden;
}
#slide{
position:absolute;
left:0;
width:2500px;
height:180px;
}
.dot{
cursor:pointer;
background:#444;
width:10px;
height:10px;
margin:4px 2px;
position:relative;
float:left;
border-radius:10px;
}
.dot.active{
background:#49a;
}
<强> jQuery的:强>
var steps = 10, // SET DESIRED n OF STEPS
delay = 3500,// SET DESIRED DELAY
galW = $('#slider_cont').width(),
c = 0, // counter
intv; // interval
// generate dots
for(i=0;i<steps;i++){
$('#dots').append('<div class="dot" />');
}
$('#dots .dot').eq(c).addClass('active');
// ANIMATIONS function
function anim(){
c=c%steps; // reset counter to '0' if greater than steps
$('#slide').stop().animate({left: '-'+galW*c},800);
$('#dots .dot').removeClass('active').eq(c).addClass('active');
}
// AUTO SLIDE function
function auto(){
intv = setInterval(function(){
c++; anim();
},delay);
}
auto(); // kick auto slide
// PAUSE slider on mouseenter
$('#slider').on('mouseenter mouseleave',function(e){
var evt = e.type=='mouseenter'? clearInterval(intv) : auto();
});
// CLICK dots to animate
$('#dots').on('click','.dot',function(){
c=$(this).index(); anim();
});
希望我对代码做好评论,询问您是否有疑问