jquery实现左右无缝轮播图


Posted in Javascript onJuly 31, 2020

本文实例为大家分享了jquery无缝轮播图的实现代码,供大家参考,具体内容如下

<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>

精彩专题分享:jQuery图片轮播 JavaScript图片轮播 Bootstrap图片轮播

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery学习3:操作元素属性和特性
Feb 07 Javascript
浅析javascript闭包 实例分析
Dec 25 Javascript
iframe 上下滚动条如何默认在下方实现原理
Dec 10 Javascript
js中的onchange和onpropertychange (onchange无效的解决方法)
Mar 08 Javascript
再谈javascript原型继承
Nov 10 Javascript
jQuery中map()方法用法实例
Jan 06 Javascript
简要了解jQuery移动web开发的响应式布局设计
Dec 04 Javascript
浅谈JavaScript变量的自动转换和语句
Jun 12 Javascript
jQuery右下角悬浮广告实例
Oct 17 Javascript
vue2.0开发实践总结之疑难篇
Dec 07 Javascript
AngularJS 前台分页实现的示例代码
Jun 07 Javascript
浅谈对于“不用setInterval,用setTimeout”的理解
Aug 28 Javascript
node.js从数据库获取数据
May 08 #Javascript
JavaScript希尔排序、快速排序、归并排序算法
May 08 #Javascript
基于jquery实现最简单的选项卡切换效果
May 08 #Javascript
基于javascript实现图片滑动效果
May 07 #Javascript
基于jquery实现图片放大功能
May 07 #Javascript
基于bootstrap插件实现autocomplete自动完成表单
May 07 #Javascript
javascript表单处理具体实现代码(表单、链接、按钮)
May 07 #Javascript
You might like
php array_map array_multisort 高效处理多维数组排序
2009/06/11 PHP
PHP遍历并打印指定目录下所有文件实例
2014/02/10 PHP
php类声明和php类使用方法示例分享
2014/03/29 PHP
ThinkPHP之M方法实例详解
2014/06/20 PHP
Thinkphp+smarty+uploadify实现无刷新上传
2015/07/30 PHP
PHP批斗大会之缺失的异常详解
2019/07/09 PHP
PHP实现抽奖功能实例代码
2020/06/30 PHP
js控制div及网页相关属性的代码
2009/12/19 Javascript
js 弹出框只弹一次(二次修改之后的)
2013/11/26 Javascript
js 调用百度地图api并在地图上进行打点添加标注
2014/05/13 Javascript
什么是cookie?js手动创建和存储cookie
2014/05/27 Javascript
jquery中 $.expr使用实例介绍
2014/06/09 Javascript
jQuery 3.0 的变化及使用方法
2016/02/01 Javascript
jQuery插件ImageDrawer.js实现动态绘制图片动画(附源码下载)
2016/02/25 Javascript
利用Console来Debug的10个高级技巧汇总
2018/03/26 Javascript
vue-router 源码之实现一个简单的 vue-router
2018/07/02 Javascript
在Vue中获取组件声明时的name属性方法
2018/09/12 Javascript
基于Vue实现的多条件筛选功能的详解(类似京东和淘宝功能)
2019/05/07 Javascript
JQuery属性操作与循环用法示例
2019/05/15 jQuery
浅谈redux, koa, express 中间件实现对比解析
2019/05/23 Javascript
Vue+ElementUI使用vue-pdf实现预览功能
2019/11/26 Javascript
javascript实现随机抽奖功能
2020/12/30 Javascript
基于VUE实现简单的学生信息管理系统
2021/01/13 Vue.js
编写Python CGI脚本的教程
2015/06/29 Python
keras 简单 lstm实例(基于one-hot编码)
2020/07/02 Python
浅析Python 条件控制语句
2020/07/15 Python
玩转CSS3色彩
2010/01/16 HTML / CSS
鲜为人知的HTML5语音合成功能
2019/05/17 HTML / CSS
彪马法国官网:PUMA法国
2019/12/15 全球购物
可靠的数据流传输TCP
2016/03/15 面试题
大学生家政服务项目创业计划书
2014/01/30 职场文书
学生党员公开承诺书
2014/05/28 职场文书
课外小组活动总结
2014/08/27 职场文书
2015年法务工作总结范文
2015/05/23 职场文书
网络妈妈观后感
2015/06/08 职场文书
yyds什么意思?90后已经听不懂00后讲话了……
2022/02/03 杂记