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使用指南之string.js
Jan 10 Javascript
javascript String 的扩展方法集合
Jun 01 Javascript
9个javascript语法高亮插件 推荐
Jul 18 Javascript
用Greasemonkey 脚本收藏网站会员信息到本地
Oct 26 Javascript
使用jQuery清空file文件域的解决方案
Apr 12 Javascript
JQuery插件开发示例代码
Nov 06 Javascript
AngularJS内建服务$location及其功能详解
Jul 01 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的三大方法
Jan 22 Javascript
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
May 05 jQuery
老生常谈js数据类型
Aug 03 Javascript
vue弹窗插件实战代码
Sep 08 Javascript
微信小程序动态添加view组件的实例代码
May 23 Javascript
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
ThinkPHP框架设计及扩展详解
2014/11/25 PHP
php通过前序遍历树实现无需递归的无限极分类
2015/07/10 PHP
基于laravel Request的所有方法详解
2019/09/29 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
jquery 锁定弹出层实现代码
2010/02/23 Javascript
jQuery遍历之next()、nextAll()方法使用实例
2014/11/08 Javascript
如何改进javascript代码的性能
2015/04/02 Javascript
javascript实现仿IE顶部的可关闭警告条
2015/05/05 Javascript
AngularJS基础学习笔记之简单介绍
2015/05/10 Javascript
javascript作用域问题实例分析
2015/07/13 Javascript
PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
2015/08/06 Javascript
javascript设计简单的秒表计时器
2020/09/05 Javascript
CSS3 3D 技术手把手教你玩转
2016/09/02 Javascript
模板视图和AngularJS之间冲突的解决方法
2016/11/22 Javascript
Node.js Mongodb 密码特殊字符 @的解决方法
2017/04/11 Javascript
nodejs获取微信小程序带参数二维码实现代码
2017/04/12 NodeJs
详解Vue.js中引入图片路径的几种方式
2019/06/17 Javascript
初学python数组的处理代码
2011/01/04 Python
举例详解Python中的split()函数的使用方法
2015/04/07 Python
Python使用BeautifulSoup库解析HTML基本使用教程
2016/03/31 Python
Python实现七彩蟒蛇绘制实例代码
2018/01/16 Python
Python读取txt某几列绘图的方法
2018/10/14 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
PyCharm 解决找不到新打开项目的窗口问题
2021/01/15 Python
HTML5 FormData 方法介绍以及实现文件上传示例
2017/09/12 HTML / CSS
周生生珠宝香港官网:Chow Sang Sang(香港及海外配送)
2019/09/05 全球购物
递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)
2013/04/28 面试题
外企财务年会演讲稿
2014/01/03 职场文书
《母亲的恩情》教学反思
2014/02/13 职场文书
煤矿安全知识竞赛活动总结
2014/07/07 职场文书
会计学专业求职信
2014/07/17 职场文书
《敬重卑微》读后感3篇
2019/11/26 职场文书
分析ZooKeeper分布式锁的实现
2021/06/30 Java/Android
Flask response响应的具体使用
2021/07/15 Python
Python语言中的数据类型-序列
2022/02/24 Python
Python实现信息管理系统
2022/06/05 Python