三十五、jquery动画 无缝滚动两种方式

本文详细介绍了如何使用jQuery实现无缝轮播图的两种方式:一是通过控制每个li标签移动,二是通过整体移动ul。内容包括自动轮播、鼠标悬停暂停与继续、创建索引圈、任意索引圈进入时的图片切换,以及左右箭头点击事件的处理。两种方法都有其特点,第一种更注重细节处理,第二种相对简单。
摘要由CSDN通过智能技术生成

无缝轮播有两种方式,一种可以让ul中的每个li进行移动,另外一种时令整个ul进行移动。无缝轮播效果之前用js写过一次,以下是用jQuery分别实现这两种方式;

 

一、第一种 控制每个li标签移动实现无缝轮播

1.基本布局样式

2.实现自动向左轮播

采用枚举对象封装函数的方法,封装自动轮播的方法:利用jQuery的自定义动画animate改变第一张图片的marginLeft令其向左移动,当移动结束时将第一张图片追加到末尾。(注意还需修改其marginLeft0)

animate({ 执行动画属性},执行时间,运动方式,动画完成回调函数)

var Animate={
    //自动轮播
    imganimate:function(){
        $(".ulinfo li").first().animate({
            marginLeft:"-600px"
        },1000,"linear",function(){
            $(".ulinfo").append($(this));
            $(this).css("marginLeft","0px");
        })
    }
}

 

3.鼠标进入图片停止轮播离开继续轮播

采用链式操作;移除绑定定时器;

//鼠标进入停止 离开继续
pauseimg:function(){
    $(".block").mouseenter(function(){
        clearInterval(time);
    }).mouseleave(function(){
        time=setInterval("Animate.imganimate()",1500);
    });
},

 

4.封装索引圈创建方法及跟随图片自动转换

利用jQuery动态创建dom元素创建索引圈;

//索引圈创建
circleCreate:function(){
   var lenth=$(".ulinfo li").length;
   for (var i=0;i<lenth;i++){
       var circle=$("<div></div>");
       circle.addClass("dian");
       $(".circle").append(circle);
   }
   $(".dian").eq(0).css("backgroundColor","red");
}

定义全局变量,在自动轮播封装方法添加索引圈自动跟随变换;

注意:count这里%6,当然也可以if判断设置count=0;

//索引圈自动跟随转换
count++;
$(".dian").css("backgroundColor","");
$(".dian").eq(count%6).css("backgroundColor","red");

 

5.封装任意进入某个索引圈对应图片跟随转换

首先任意进入一个索引圈,其他索引圈为白,当前为红;

求当前进入索引圈索引值与图片索引值(count%6)的差值,判断差值正负,正值则进入圈在播放图片之后,负值则进入圈在播放图片之前,这时就需要处理差值,根据这个值确定图片轮转的次数;

注意:这里需要处理两个bug

A. 反复进入同一个圈的bug

B. 当快速滑过几个索引圈,上一个还未结束下一个操作被触发的bug(递归方法,移除绑定事件;或者定义标志位处理bug)

//进入索引圈对应图片跟随变换
incircle:function(){
    $

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值