Jquery div滑块+菜单

时间:2012-09-04 10:27:14

标签: javascript jquery html css

目前我需要为<div>制作一个滑块。但是由于大多数插件的大小,我试图创建自己的jquery脚本,因为我只需要基础知识。但说实话,我真的是jQuery的初学者,可以使用一些帮助。

目前我获得<div>作为容器(overflow:hidden和250px宽度),<div>我得到了另一个<div>,需要从右边移动到$(document).ready左边(宽度2500px)。我希望<div>函数上的div以左边250px的步长动画,间隔为5秒。但是整个上午花了整整一个小时试图找出从哪里开始我仍然被卡住了。

此外,我还想要以下选项:

  1. 在内部{{1}}完全位于左侧之后,它会逐渐消失回原位。
  2. 创建“点”以导航到某个位置的方法,当导航到该位置时,幻灯片从该位置开始动画。
  3. 我知道这是一个很大的(难的)问题,但即使是一点点的帮助也会非常受欢迎。

3 个答案:

答案 0 :(得分:3)

这是我创建的符合您要求的演示:little link。 jQuery / JavaScript已完全注释以供参考,但如果任何部分需要额外的详细说明,我很乐意解释更多!

答案 1 :(得分:1)

使用正确的程序更新了您的JSFiddle

<强> fiddle demo

答案 2 :(得分:1)

jsBin demo

<强> 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();
});

希望我对代码做好评论,询问您是否有疑问