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实现网页图片等比例缩放实现代码及调用方式
Feb 25 Javascript
用js实现trim()的解决办法
Apr 16 Javascript
javascript使用数组的push方法完成快速排序
Sep 15 Javascript
JavaScript中的异常捕捉介绍
Dec 31 Javascript
JS动态计算移动端rem的解决方案
Oct 14 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(同步显示图像位置信息)
Dec 02 Javascript
详解AngularJS中$filter过滤器使用(自定义过滤器)
Feb 04 Javascript
React学习笔记之事件处理(二)
Jul 02 Javascript
bootstrap modal+gridview实现弹出框效果
Aug 15 Javascript
AngularJS与BootStrap模仿百度分页的示例代码
May 23 Javascript
解决Vue中使用keepAlive不缓存问题
Aug 04 Javascript
ajax请求前端跨域问题原因及解决方案
Oct 16 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
PHP中=赋值操作符对不同数据类型的不同行为
2011/01/02 PHP
FireFox浏览器使用Javascript上传大文件
2013/10/30 PHP
php实现的树形结构数据存取类实例
2014/11/29 PHP
PHP Swoole异步读取、写入文件操作示例
2019/10/24 PHP
java script编程起步(第三课)
2007/01/10 Javascript
javascript编程起步(第三课)
2007/02/27 Javascript
Script标签与访问HTML页面详解
2014/01/10 Javascript
jquery绑定事件不生效的解决方法
2014/02/11 Javascript
jquery中one()方法的用法实例
2015/01/16 Javascript
js+canvas简单绘制圆圈的方法
2016/01/28 Javascript
jQuery+Ajax实现用户名重名实时检测
2017/06/01 jQuery
使用bootstrap实现下拉框搜索功能的实例讲解
2018/08/10 Javascript
详解webpack自定义loader初探
2018/08/29 Javascript
一百行JS代码实现一个校验工具
2019/04/30 Javascript
vue 组件销毁并重置的实现
2020/01/13 Javascript
Python实现Linux下守护进程的编写方法
2014/08/22 Python
python进阶教程之动态类型详解
2014/08/30 Python
对Python 两大环境管理神器 pyenv 和 virtualenv详解
2018/12/31 Python
Python统计一个字符串中每个字符出现了多少次的方法【字符串转换为列表再统计】
2019/05/05 Python
python获取txt文件词向量过程详解
2019/07/05 Python
python的re模块使用方法详解
2019/07/26 Python
使用python制作游戏下载进度条的代码(程序说明见注释)
2019/10/24 Python
Python自动化完成tb喵币任务的操作方法
2019/10/30 Python
如何分离django中的媒体、静态文件和网页
2019/11/12 Python
关于Flask项目无法使用公网IP访问的解决方式
2019/11/19 Python
对pytorch的函数中的group参数的作用介绍
2020/02/18 Python
keras.utils.to_categorical和one hot格式解析
2020/07/02 Python
详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用
2020/08/24 HTML / CSS
迪拜领先运动补剂零售品牌中文站:Sporter商城
2019/08/20 全球购物
物业电工岗位职责
2013/11/20 职场文书
岗位职责范本
2013/11/23 职场文书
英语自荐信常用语句
2013/12/13 职场文书
班组长竞聘书
2014/03/31 职场文书
医院党员公开承诺书
2014/08/30 职场文书
风之谷观后感
2015/06/11 职场文书
2016新年感言
2015/08/03 职场文书