Jquery 轮播图制作

轮播图制作主要思路:实现轮播图滚动的效果,主要是使用animate()函数来实现这个过渡的动画效果。当向左点击时,画面向右移动,应该把最后面的这个元素放在最前面,然后设置这个元素的父元素向左移动n个元素宽度,此时使用animate来恢复其距离原来的距离,已达到过渡的动画效果。向右点击则相反。

html:一个div包含一个ul,ul里面的li元素设置浮动,横向展开。

js代码模块:

/*

*RollBox: 包含ul的直系父组件;Left(Right): 向左或向右点击的标签类或ID;Step:切换的个数;Auto: 是否自动切换

*/

function acrossSwitch (RollBox, Left, Right, Step, Auto) {

var ThisStep = 1;      //切换个数

var ThisAuto = false;  //是否自动切换

var ThisSpeed = 500;  //播放一次动作速度

var PlayTime = 5000;    //自动切换速度

var RollUL = $(RollBox).find(">ul");

var RollBoxLi = RollUL.find(">li");

var LiWidth = RollBoxLi.outerWidth(true);

var LiLength = RollBoxLi.length;

RollUL.width(LiWidth * LiLength);

if (arguments[3]) ThisStep = Step;

if (arguments[4]) ThisAuto = Auto;

if (arguments[5]) ThisSpeed = Speed;

var MoveSize = LiWidth * ThisStep;

/*左右切换*/

function LeftRoll() {

for (i = 0; i < Step; i++) {

RollUL.find(">li:last").prependTo(RollUL);

}

RollUL.css({ "margin-left": -MoveSize });

RollUL.animate({ "margin-left": "0px" }, ThisSpeed);

}

function RightRoll() {

RollUL.animate({ "margin-left": -MoveSize }, ThisSpeed, function () {

for (i = 0; i < Step; i++) {

RollUL.find(">li:first").appendTo(RollUL);

}

RollUL.css({ "margin-left": "0px" });

});

}

$(document).on('click', '.channel-set', function(){

LeftRoll();

});

$(document).on('click', '.channel-ui', function(){

RightRoll();

});

$(Right).click(function () {

RightRoll();

});

$(Left).click(function () {

LeftRoll();

});

if (ThisAuto) {

var AutoPlay = setInterval(function () { RightRoll() }, PlayTime);

$(Right).hover(function () {

clearInterval(AutoPlay);

}, function () {

AutoPlay = setInterval(function () { RightRoll() }, PlayTime);

});

$(Left).hover(function () {

clearInterval(AutoPlay);

}, function () {

AutoPlay = setInterval(function () { RightRoll() }, PlayTime);

});

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. tab列表折叠效果 html: 能源系统事业部 岗位名称: 工作地点 岗位名...
    lilyping阅读 5,883评论 0 1
  • jQuery基础 什么是JQ?一个优秀的JS库,大型开发必备JQ的好处?一简化JS的复杂操作二不再需要关心兼容性三...
    幺七阅读 4,461评论 0 2
  • 2017.07.14No104 0715-0745用时30分钟字数890 躺在一个独特的分割线上,一边是远去的完整...
    何不可阅读 3,177评论 0 3
  • 1.登陆阿里云打开以下界面 2.新增云盾服务 3.补全信息 按提示填写信息即可 4.查看审批状态 5.修改服务器n...
    奋斗_登阅读 4,524评论 0 2
  • 文:念伊伊 这几天我的朋友圈炸了锅,原本老实憨厚的J男失联了,连带着他的妻女一起消失在我们的视线里。 据说J男找不...
    念伊伊阅读 1,722评论 0 5