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 相关文章推荐
JavaScript delete操作符应用实例
Jan 13 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
Dec 17 Javascript
jquery实现图片按比例缩放示例
Jul 01 Javascript
Javascript闭包实例详解
Nov 29 Javascript
复杂的javascript窗口分帧解析
Feb 19 Javascript
JS身份证信息验证正则表达式
Jun 12 Javascript
JavaScript箭头函数_动力节点Java学院整理
Jun 28 Javascript
原生js封装添加class,删除class的实例
Nov 06 Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
Mar 01 Javascript
微信小程序云开发之使用云数据库
May 17 Javascript
Vue 前端实现登陆拦截及axios 拦截器的使用
Jul 17 Javascript
javascript前端实现多视频上传
Dec 13 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
在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
2010/05/04 PHP
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
2011/02/08 PHP
PHP实现事件机制实例分析
2015/06/26 PHP
PhpStorm terminal无法输入命令的解决方法
2016/10/09 PHP
理解JavaScript变量作用域更轻松
2009/10/25 Javascript
jQuery带箭头提示框tooltips插件集锦
2014/11/17 Javascript
jQuery中:contains选择器用法实例
2014/12/30 Javascript
AngularJS Ajax详解及示例代码
2016/08/17 Javascript
Canvas 制作动态进度加载水球详解及实例代码
2016/12/09 Javascript
Bootstrap modal使用及点击外部不消失的解决方法
2016/12/13 Javascript
javascript数据结构之串的概念与用法分析
2017/04/12 Javascript
微信小程序基础教程之worker线程的使用方法
2019/07/15 Javascript
nodejs开发一个最简单的web服务器实例讲解
2020/01/02 NodeJs
[01:45]绝对公平!DOTA2队长征召模式详解
2014/04/25 DOTA
[02:34]2016完美“圣”典风云人物:BurNIng专访
2016/12/10 DOTA
Python编程中字符串和列表的基本知识讲解
2015/10/14 Python
Python找出9个连续的空闲端口
2016/02/01 Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
2016/05/27 Python
python爬虫入门教程--正则表达式完全指南(五)
2017/05/25 Python
python 读文件,然后转化为矩阵的实例
2018/04/23 Python
Python创建普通菜单示例【基于win32ui模块】
2018/05/09 Python
只需7行Python代码玩转微信自动聊天
2019/01/27 Python
浅析Django中关于session的使用
2019/12/30 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
2020/02/15 Python
Python实现进度条和时间预估的示例代码
2020/06/02 Python
利用Bootstrap实现漂亮简洁的CSS3价格表实例源码
2017/03/02 HTML / CSS
ghd官网:英国ghd直发器品牌
2018/05/04 全球购物
莫斯科大型旅游休闲商品超市:Camping.ru
2020/09/16 全球购物
芭比波朗加拿大官方网站:Bobbi Brown Cosmetics CA
2020/11/05 全球购物
国际商务专业学生个人的自我评价
2013/09/28 职场文书
校园奶茶店创业计划书
2014/01/23 职场文书
材料工程专业毕业生求职信
2014/03/04 职场文书
司机工作自我鉴定
2014/09/19 职场文书
公司车队管理制度
2015/08/04 职场文书
golang goroutine顺序输出方式
2021/04/29 Golang
Netty客户端接入流程NioSocketChannel创建解析
2022/03/25 Java/Android