JS实现左右无缝轮播图代码


Posted in Javascript onMay 01, 2016

废话不多说了,直接给大家贴代码了。

无缝轮播图:

<title>无缝轮播图</title>
<style>
*{margin: 0;padding:0; }
ul{list-style: none;}
.banner{width: 600px;height: 300px;border: 2px solid #ccc;margin: 100px auto;position: relative;overflow: hidden;}
.img{position: absolute;top: 0;left: 0}
.img li{float: left;}
.num{position: absolute;bottom: 10px;width: 100%;text-align: center;font-size: 0;}
.num li{width: 10px;height: 10px;background:rgba(0,0,0,0.5);display: block;border-radius: 100%;display: inline-block;margin: 0 5px;cursor: pointer;}
.btn{display: none;}
.btn span{display: block;width: 50px;height: 100px;background: rgba(0,0,0,0.6);color: #fff;font-size: 40px;line-height: 100px;text-align: center;cursor:pointer;}
.btn .prev{position: absolute;left: 0;top: 50%;margin-top: -50px;}
.btn .next{position: absolute;right: 0;top: 50%;margin-top: -50px;}
.num .active{background-color: #fff;}
</style>
<script src="http://apps.bdimg.com/libs/jquery/1.8.3/jquery.min.js"></script>
</head>
<body>
<div class="banner">
<ul class="img">
<li><a href="#"><img src="img/1.jpg" alt="第1张图片"></a></li>
<li><a href="#"><img src="img/2.jpg" alt="第2张图片"></a></li>
<li><a href="#"><img src="img/3.jpg" alt="第3张图片"></a></li>
<li><a href="#"><img src="img/4.jpg" alt="第4张图片"></a></li>
<li><a href="#"><img src="img/5.jpg" alt="第5张图片"></a></li>
</ul>
<ul class="num"></ul> //
<div class="btn">
<span class="prev"><</span>
<span class="next">></span>
</div>
</div>
<script>
$(function(){
var i=0;
var timer=null;
for (var j = 0; j < $('.img li').length; j++) { //创建圆点
$('.num').append('<li></li>')
}
$('.num li').first().addClass('active'); //给第一个圆点添加样式
var firstimg=$('.img li').first().clone(); //复制第一张图片
$('.img').append(firstimg).width($('.img li').length*($('.img img').width())); //将第一张图片放到最后一张图片后,设置ul的宽度为图片张数*图片宽度
// 下一个按钮
$('.next').click(function(){
i++;
if (i==$('.img li').length) {
i=1; //这里不是i=0
$('.img').css({left:0}); //保证无缝轮播,设置left值
};
$('.img').stop().animate({left:-i*600},300);
if (i==$('.img li').length-1) { //设置小圆点指示
$('.num li').eq(0).addClass('active').siblings().removeClass('active');
}else{
$('.num li').eq(i).addClass('active').siblings().removeClass('active');
}
})
// 上一个按钮
$('.prev').click(function(){
i--;
if (i==-1) {
i=$('.img li').length-2;
$('.img').css({left:-($('.img li').length-1)*600});
}
$('.img').stop().animate({left:-i*600},300);
$('.num li').eq(i).addClass('active').siblings().removeClass('active');
})
//设置按钮的显示和隐藏
$('.banner').hover(function(){
$('.btn').show();
},function(){
$('.btn').hide();
})
//鼠标划入圆点
$('.num li').mouseover(function(){
var _index=$(this).index();
$('.img').stop().animate({left:-_index*600},150);
$('.num li').eq(_index).addClass('active').siblings().removeClass('active');
})
//定时器自动播放
timer=setInterval(function(){
i++;
if (i==$('.img li').length) {
i=1;
$('.img').css({left:0});
};
$('.img').stop().animate({left:-i*600},300);
if (i==$('.img li').length-1) { 
$('.num li').eq(0).addClass('active').siblings().removeClass('active');
}else{
$('.num li').eq(i).addClass('active').siblings().removeClass('active');
}
},1000)
//鼠标移入,暂停自动播放,移出,开始自动播放
$('.banner').hover(function(){ 
clearInterval(timer);
},function(){
timer=setInterval(function(){
i++;
if (i==$('.img li').length) {
i=1;
$('.img').css({left:0});
};
$('.img').stop().animate({left:-i*600},300);
if (i==$('.img li').length-1) { 
$('.num li').eq(0).addClass('active').siblings().removeClass('active');
}else{
$('.num li').eq(i).addClass('active').siblings().removeClass('active');
}
},1000)
})
})
</script>

以上代码是使用js实现的无缝轮播效果,代码比较简单,所以没有给大家注释,如果有疑问欢迎给我留言。

Javascript 相关文章推荐
prototype Element学习笔记(篇二)
Oct 26 Javascript
extjs3 combobox取value和text案例详解
Feb 06 Javascript
含有CKEditor的表单如何提交
Jan 09 Javascript
JavaScript在浏览器标题栏上显示当前日期和时间的方法
Mar 19 Javascript
angular源码学习第一篇 setupModuleLoader方法
Oct 20 Javascript
js链表操作(实例讲解)
Aug 29 Javascript
用最少的JS代码写出贪吃蛇游戏
Jan 12 Javascript
layui复选框的全选与取消实现方法
Sep 02 Javascript
jquery实现点击弹出对话框
Feb 08 jQuery
浅谈JavaScript中this的指向更改
Jul 28 Javascript
vue实现移动端触屏拖拽功能
Aug 21 Javascript
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
Mar 01 Vue.js
JavaScript中的继承之类继承
May 01 #Javascript
js根据手机客户端浏览器类型,判断跳转官网/手机网站多个实例代码
Apr 30 #Javascript
js判断手机浏览器操作系统和微信浏览器的方法
Apr 30 #Javascript
js实现的万能flv网页播放器代码
Apr 30 #Javascript
js实现的下拉框二级联动效果
Apr 30 #Javascript
js实现精确到秒的日期选择器完整实例
Apr 30 #Javascript
js简单倒计时实现代码
Apr 30 #Javascript
You might like
PHP获取一段文本显示点阵宽度和高度的方法
2015/03/12 PHP
PHP递归的三种常用方式
2019/02/28 PHP
JavaScript OOP类与继承
2009/11/15 Javascript
JQuery+JS实现仿百度搜索结果中关键字变色效果
2011/08/02 Javascript
jQuery控制TR显示隐藏的几种方法
2014/06/18 Javascript
jQuery学习笔记之jQuery中的$
2015/01/19 Javascript
jQuery实现鼠标划过修改样式的方法
2015/04/14 Javascript
jQuery中next方法用法实例
2015/04/24 Javascript
倾力总结40条常见的移动端Web页面问题解决方案
2016/05/24 Javascript
jquery插件autocomplete用法示例
2016/07/01 Javascript
Javascript学习之谈谈JS的全局变量跟局部变量(推荐)
2016/08/28 Javascript
原生js和css实现图片轮播效果
2017/02/07 Javascript
ES6中的rest参数与扩展运算符详解
2017/07/18 Javascript
nodejs实现解析xml字符串为对象的方法示例
2018/03/14 NodeJs
Vue vm.$attrs使用场景详解
2020/03/08 Javascript
浅析JavaScript 函数防抖和节流
2020/07/13 Javascript
[00:36]DOTA2上海特级锦标赛 LGD战队宣传片
2016/03/04 DOTA
[48:41]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
Python中使用bidict模块双向字典结构的奇技淫巧
2016/07/12 Python
详解如何利用Cython为Python代码加速
2018/01/27 Python
python多进程使用及线程池的使用方法代码详解
2018/10/24 Python
PyTorch: 梯度下降及反向传播的实例详解
2019/08/20 Python
解决IDEA 的 plugins 搜不到任何的插件问题
2020/05/04 Python
python实现MySQL指定表增量同步数据到clickhouse的脚本
2021/02/26 Python
基于HTML5代码实现折叠菜单附源码下载
2015/11/27 HTML / CSS
美国儿童运动鞋和服装零售商:Kids Foot Locker
2017/08/05 全球购物
英格兰足协官方商店:England Store
2019/07/12 全球购物
英国第一职业高尔夫商店:Clickgolf.co.uk
2020/11/18 全球购物
暑期研修感言
2014/02/17 职场文书
师德师风自我评价范文
2014/09/11 职场文书
2014年企业工会工作总结
2014/11/12 职场文书
2015年考研复习计划
2015/01/19 职场文书
世界环境日活动总结
2015/02/11 职场文书
大学优秀学生主要事迹材料
2015/11/04 职场文书
2016年大学生暑期社会实践方案
2015/11/26 职场文书
浅析Python OpenCV三种滤镜效果
2022/04/11 Python