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 相关文章推荐
js url传值中文乱码之解决之道
Nov 20 Javascript
Javascript Object.extend
May 18 Javascript
解析javascript 浏览器关闭事件
Jul 08 Javascript
JS实现同一个网页布局滑动门和TAB选项卡实例
Sep 23 Javascript
理解js对象继承的N种模式
Jan 25 Javascript
json格式的javascript对象用法分析
Jul 04 Javascript
AngularJS实现的生成随机数与猜数字大小功能示例
Dec 25 Javascript
Webstorm2016使用技巧(SVN插件使用)
Oct 29 Javascript
微信小程序实现自动定位功能
Oct 31 Javascript
解决微信小程序调用moveToLocation失效问题【超简单】
Apr 12 Javascript
解决cordova+vue 项目打包成APK应用遇到的问题
May 10 Javascript
jQuery 选择器用法基础入门示例
Jan 04 jQuery
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
NO3第三帝国留言簿制作过程
2006/10/09 PHP
php中mysql连接和基本操作代码(快速测试使用,简单方便)
2014/04/25 PHP
Ajax+Jpgraph实现的动态折线图功能示例
2019/02/11 PHP
经典的带阴影的可拖动的浮动层
2006/06/26 Javascript
js中判断控件是否存在
2010/08/25 Javascript
一个关于javascript匿名函数的问题分析
2012/03/30 Javascript
JS判断页面加载状态以及添加遮罩和缓冲动画的代码
2012/10/11 Javascript
js setTimeout opener的用法示例详解
2013/10/23 Javascript
js实现省市联动效果的简单实例
2014/02/10 Javascript
jquery map方法使用示例
2014/04/23 Javascript
Egret引擎开发指南之视觉编程
2014/09/03 Javascript
JavaScript 正则表达式中global模式的特性
2016/02/25 Javascript
html判断当前页面是否在iframe中的实例
2016/11/30 Javascript
JavaScript Date 知识浅析
2017/01/29 Javascript
浅谈JavaScript中的apply/call/bind和this的使用
2017/02/26 Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
2017/03/13 Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
2017/05/09 Javascript
VUE实现表单元素双向绑定(总结)
2017/08/08 Javascript
JS从非数组对象转数组的方法小结
2018/03/26 Javascript
webpack 模块热替换原理
2018/04/09 Javascript
jQuery实现表格隔行换色
2018/09/01 jQuery
JavaScript实现的联动菜单特效示例
2019/07/08 Javascript
对layui中table组件工具栏的使用详解
2019/09/19 Javascript
OpenLayers3实现地图显示功能
2020/09/25 Javascript
详解js创建对象的几种方式和对象方法
2021/03/01 Javascript
[38:40]2018DOTA2亚洲邀请赛 4.6淘汰赛 mineski vs LGD 第一场
2018/04/10 DOTA
Python编程实现的图片识别功能示例
2017/08/03 Python
python 中的int()函数怎么用
2017/10/17 Python
详解Django+uwsgi+Nginx上线最佳实战
2019/03/14 Python
python实现微信防撤回神器
2019/04/29 Python
美国嘻哈首饰购物网站:Hip Hop Bling
2016/12/30 全球购物
英国领先的鞋类零售商和顶级品牌的官方零售商:Wynsors
2020/02/17 全球购物
美国室内盆栽植物购买网站:Plants.com
2020/04/24 全球购物
如何通过 CSS 写出火焰效果
2021/03/24 HTML / CSS
党的群众教育实践活动实施方案
2014/06/12 职场文书
帝企鹅日记观后感
2015/06/10 职场文书