轮播图

使用的时候先用Jquery在引它

mousewheel(function(event,data)) 向下是-1 向上+1

(window).height() 获取可视区

null 空

setTimeout 定时器

clearTimeout() 清理定时器 做到函数节流

轮播图(PPT)

首尾连续滑动(需要用js)

li都是通过绝对定位的

用索引判断大小

除了第一个li都定位到右侧

动态创建小圆点(用代码动态生成)each循环

左右按钮是两个div 一个自增一个自减

幻灯片布局

 
  • 幻灯片
  • 幻灯片
  • 幻灯片
  • 幻灯片
  • 幻灯片
  • 幻灯片
  • 幻灯片
  • 幻灯片

幻灯片

$(function(){
var $li = $(".slide_pics li");
var len = $li.length;//一共有几张图片
var $prev = $('.prev');
var $next = $('.next');
var nextli = 0;//将要运动过来的li
var nowli = 0;//当前要离开的li
var timer = null;//定时器

//除第一个li,都定位到右侧
$li.not(':first').css({left:1156});

//动态创建小圆点
$li.each(function(index){
//创建li
var $sli = $('
  • '); //第一个li添加选中样式 if(index == 0){ $sli.addClass('active'); } //将li添加到ul中 $sli.appendTo('.points'); }) $points = $('.points li'); // alert($points.length); $points.click(function() { nextli = $(this).index();//点击的小圆点的索引,就是马上要进来那张的索引 //当点击当前张的小圆点时,不做任何操作 if(nextli == nowli){ return; } move(); $(this).addClass('active').siblings().removeClass('active'); }); $prev.click(function() { nextli--; move(); //改变圆点样式 $points.eq(nextli).addClass('active').siblings().removeClass('active'); }); $next.click(function() { nextli++; move(); //改变圆点样式 $points.eq(nextli).addClass('active').siblings().removeClass('active'); }); //进入子元素也清除定时器 $('.slide').mouseenter(function() { clearInterval(timer); }); $('.slide').mouseleave(function() { timer = setInterval(autoplay, 3000); }); //定时器循环自动播放 timer = setInterval(autoplay, 3000); //自动播放的逻辑跟点击下一张是相同的 function autoplay(){ nextli++; move(); //改变圆点样式 $points.eq(nextli).addClass('active').siblings().removeClass('active'); } function move(){ //走到第一张,再继续走时 if(nextli < 0){ nextli = len - 1;//将要来的是最后一张 nowli = 0;//要离开的是第一张 $li.eq(nextli).css({left:-1156});//把最后一张定位到左侧,准备进入 $li.eq(nowli).stop().animate({left:1156});//离开的第一张走到右侧 $li.eq(nextli).stop().animate({left:0});//进入的最后一张走进来 nowli = nextli;//要离开的赋值为刚进入的最后一张 return;//下边代码是正常情况的,极端情况下不执行,直接返回 } //走到最后一张,再继续走时 if(nextli > len - 1){ nextli = 0;//将要来的是第一张 nowli = len - 1;//要离开的是最后一张 $li.eq(nextli).css({left:1156});//将要进来的第一张定位到右侧,准备进入 $li.eq(nowli).stop().animate({left:-1156});//离开的最后一张走到左侧 $li.eq(nextli).stop().animate({left:0});//进入的第一张走进来 nowli = nextli;//要离开的赋值为刚进入的第一张 return; } if(nextli > nowli){//从右向左进入,例如第2张进入,第1张出去 $li.eq(nextli).css({left:1156});//把马上要进来的那张,瞬间放在右侧 $li.eq(nowli).stop().animate({left:-1156});//当前这张要离开,运动到左侧 }else{ $li.eq(nextli).css({left:-1156});//把马上要进来的那张,瞬间放在左侧 $li.eq(nowli).stop().animate({left:1156});//当前这张要离开,运动到右侧 } $li.eq(nextli).stop().animate({left:0});//马上进来的这张走到可视区(即0的位置) nowli = nextli; } })

    你可能感兴趣的:(轮播图)