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 图片缩放效果代码
Jun 09 Javascript
JS实现在Repeater控件中创建可隐藏区域的代码
Sep 16 Javascript
javascript中使用正则计算中文长度的例子
Apr 29 Javascript
html的DOM中document对象forms集合用法实例
Jan 21 Javascript
深入理解JavaScript系列(27):设计模式之建造者模式详解
Mar 03 Javascript
JS实现点击按钮后框架内载入不同网页的方法
May 05 Javascript
AngularJS基础 ng-keyup 指令简单示例
Aug 02 Javascript
分享JS数组求和与求最大值的方法
Aug 11 Javascript
JS简单实现数组去重的方法示例
Mar 27 Javascript
vue.js vue-router如何实现无效路由(404)的友好提示
Dec 20 Javascript
深入浅析angular和vue还有jquery的区别
Aug 13 jQuery
Vue Autocomplete 自动完成功能简单示例
May 25 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
PHP5/ZendEngine2的改进
2006/10/09 PHP
phpMyadmin 用户权限中英对照
2010/04/02 PHP
php curl常见错误:SSL错误、bool(false)
2011/12/28 PHP
深入解析php之apc
2013/05/15 PHP
php求数组全排列,元素所有组合的方法
2016/05/05 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
网站如何做到完全不需要jQuery也可以满足简单需求
2013/06/27 Javascript
JS Replace()的高级使用方法介绍
2013/06/29 Javascript
模拟jQuery中的ready方法及实现按需加载css,js实例代码
2013/09/27 Javascript
你可能不知道的JavaScript的new Function()方法
2014/04/17 Javascript
Javascript实现网络监测的方法
2015/07/31 Javascript
require.js的用法详解
2015/10/20 Javascript
jQuery基于函数重载实现自定义Alert函数样式的方法
2016/07/27 Javascript
两种简单的跨域方法(jsonp、php)
2017/01/02 Javascript
利用jquery实现实时更新歌词的方法
2017/01/06 Javascript
vue 使用html2canvas将DOM转化为图片的方法
2018/09/11 Javascript
vue页面切换过渡transition效果
2018/10/08 Javascript
js中实例与对象的区别讲解
2019/01/21 Javascript
JS正则表达式封装与使用操作示例
2019/05/15 Javascript
Python字符串处理函数简明总结
2015/04/13 Python
python文件操作之目录遍历实例分析
2015/05/20 Python
windows 10下安装搭建django1.10.3和Apache2.4的方法
2017/04/05 Python
基于Django filter中用contains和icontains的区别(详解)
2017/12/12 Python
python如何通过实例方法名字调用方法
2018/03/21 Python
Python判断telnet通不通的实例
2019/01/26 Python
libreoffice python 操作word及excel文档的方法
2019/07/04 Python
解决Keras 自定义层时遇到版本的问题
2020/06/16 Python
Python如何将装饰器定义为类
2020/07/30 Python
python3中确保枚举值代码分析
2020/12/02 Python
ASOS英国官网:英国在线时装和化妆品零售商
2017/05/19 全球购物
美容师的职业规划书
2013/12/27 职场文书
幼儿园六一活动总结
2014/08/27 职场文书
运动会主持词大全
2015/07/02 职场文书
初中军训感想
2015/08/07 职场文书
2016年清明节寄语
2015/12/04 职场文书
小公司融资,商业计划书的8切记
2019/07/15 职场文书