js轮播图无缝滚动效果


Posted in Javascript onJune 17, 2017

在做轮播图时如果首尾不能连起来的话,效果会有点丑,下面介绍一种我常用的方法:

先文字说明一下:

如果要展示5张图,分别为1,2,3,4,5  那么在代码的引入中是这样的:1,2,3,4,5,1

按顺序的轮播在此就不多说,重点说的是5>1和1>5的轮播

i  表示当前图片的索引

pre 表示上一张图片的按钮

next 表示下一张图片的按钮

ul 表示图片列表

(1)  5>1>2...   当“next”按钮从5到1时按顺序正常轮播,当前图片为第二个“1”时,下一张图片应该是“2”,那么再“next”时是ul的left的值为0,i==1;

(2) 1>5>4....  当“pre”按钮从当前图片“1”(第一个1)轮播到图片5时,i==4,ul的left值变为img宽的-5倍,也就是让第一个1悄悄的变为最后一个1;

用语言表述有点乱,下面放代码:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <style type="text/css">
 *{padding: 0;margin: 0;}
 .container{
 width: 273px;height: 163px;overflow: hidden;
 position: relative;margin: 0 auto;
 }
 .list{
 position: absolute;width: 1638px;top: 0;left: 0px;
 }
 .list li{
 float: left;list-style: none;
 }
 .btn{
 position: absolute;display: block;width: 40px;height: 50px;font-size: 40px;
 text-align: center;font-weight: bold;top: 50%;margin-top: -25px;background-color: rgba(255,255,255,0.5);cursor:pointer;
 }
 .btn:hover{
 background-color: rgba(0,0,0,0.3);color: #fff;
 }
 .pre{
 left: 0;
 }
 .next{
 right: 0;
 }
 .nav{
 position: absolute;bottom: 5px;display: flex;justify-content: center;width: 100%;
 }
 .nav span{
 width: 10px;height: 10px;border-radius: 10px;background-color: #fff;z-index: 2;display: inline-block;margin-right: 10px;cursor: pointer;
 }
 span.on{
 background-color: orange;
 }
 </style>
</head>
<body>
 <div class="container">
 <ul class="list" style="left: 0px">
 <li><img src="./images/1.png" alt=""></li>
 <li><img src="./images/2.png" alt=""></li>
 <li><img src="./images/3.png" alt=""></li>
 <li><img src="./images/4.png" alt=""></li>
 <li><img src="./images/5.png" alt=""></li>
 <li><img src="./images/1.png" alt=""></li>
 </ul>
 <div class="nav">
 <span class="on"></span>
 <span></span>
 <span></span>
 <span></span>
 <span></span>
 </div>
 <em class="next btn">></em>
 <em class="pre btn"><</em>
 </div>
 <script type="text/javascript" src="../jquery.js"></script>
 <script type="text/javascript">
 $(function(){
 var i=0;
 $('.next').click(function(){
 i++;
 console.log(i);
 
 moveImg(i);
 
 });
 $('.pre').click(function(){
 i--;
 moveImg(i);
 
 });
 $('.nav span').click(function(){
 var _index=$(this).index();
 i=_index;
 moveImg(i);
 
 
 });
 // i的作用:决定下一张图片是谁————也就是说ul的left是多少。
 // $('.list').css({left)的值是从图a过度是此时的ul的left。
 function moveImg(){
 if (i==6) {
 i=1;
 $('.list').css({'left':'0'});
 }
 // 是第一张
 if(i==-1){
 i=4;
 $('ul').css({left:(5*-273)});
 }
 $('.list').stop().animate({'left':-273*i+'px'},1000);
 if (i==5) {
 $('.nav span').eq(0).addClass('on').siblings().removeClass('on');
 
 }
 $('.nav span').eq(i).addClass('on').siblings().removeClass('on');
 
 }
 })
 </script>
</body>
</html>

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

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

Javascript 相关文章推荐
延时重复执行函数 lLoopRun.js
May 08 Javascript
javascript event 事件解析
Jan 31 Javascript
jquery 按钮状态效果 正常、移上、按下
Aug 12 Javascript
Egret引擎开发指南之发布项目
Sep 03 Javascript
jQuery的Scrollify插件实现滑动到页面下一节点
Jul 05 Javascript
jquery 实现输入邮箱时自动补全下拉提示功能
Oct 04 Javascript
Javascript获取background属性中url的值
Oct 17 Javascript
JavaScript对象封装的简单实现方法(3种方法)
Jan 03 Javascript
jQuery向webApi提交post json数据
Jan 16 Javascript
基于 D3.js 绘制动态进度条的实例详解
Feb 26 Javascript
vue使用高德地图根据坐标定位点的实现代码
Aug 22 Javascript
基于JS正则表达式实现模板数据动态渲染(实现思路详解)
Mar 07 Javascript
详解webpack+vue-cli项目打包技巧
Jun 17 #Javascript
vue-router单页面路由
Jun 17 #Javascript
详解JS获取HTML DOM元素的8种方法
Jun 17 #Javascript
JavaScript输入框字数实时统计更新
Jun 17 #Javascript
Linux系统中利用node.js提取Word(doc/docx)及PDF文本的内容
Jun 17 #Javascript
bootstrap paginator分页前后台用法示例
Jun 17 #Javascript
Vue报错:Uncaught TypeError: Cannot assign to read only property’exports‘ of object’#‘的解决方法
Jun 17 #Javascript
You might like
239军机修复记
2021/03/02 无线电
php Sql Server连接失败问题及解决办法
2009/08/07 PHP
PHP实现时间轴函数代码
2011/10/08 PHP
PHP判断来访是搜索引擎蜘蛛还是普通用户的代码小结
2015/09/14 PHP
php微信公众平台开发(一) 配置接口
2016/12/06 PHP
关于UTF-8的客户端用AJAX方式获取GB2312的服务器端乱码问题的解决办法
2010/11/30 Javascript
Extjs中ComboBox加载并赋初值的实现方法
2012/03/22 Javascript
屏蔽script注入小例子
2013/11/12 Javascript
Javascript中数组方法汇总(推荐)
2015/04/01 Javascript
页面内容排序插件jSort使用方法
2015/10/10 Javascript
关于数据与后端进行交流匹配(点亮星星)
2016/08/03 Javascript
基于WebUploader的文件上传js插件
2016/08/19 Javascript
Vue.js基础知识小结
2017/01/13 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
Nuxt.js实战详解
2018/01/18 Javascript
JavaScript模板引擎应用场景及实现原理详解
2018/12/14 Javascript
JS实现提示效果弹出及延迟隐藏的功能
2019/08/26 Javascript
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
2020/11/18 Vue.js
JavaScript实现网页下拉菜单效果
2020/11/20 Javascript
JavaScript实现点击自制菜单效果
2021/02/02 Javascript
Python3 获取一大段文本之间两个关键字之间的内容方法
2018/10/11 Python
python腾讯语音合成实现过程解析
2019/08/01 Python
python实现两个文件夹的同步
2019/08/29 Python
详解基于python的全局与局部序列比对的实现(DNA)
2020/10/07 Python
CSS3实现点击放大的动画实例代码
2017/02/27 HTML / CSS
Bibloo荷兰:女士、男士和儿童的服装、鞋子和配饰
2019/02/25 全球购物
伦敦鲜花递送:Flower Station
2021/02/03 全球购物
abstract class和interface有什么区别
2013/08/04 面试题
地理科学专业毕业生求职信
2013/10/15 职场文书
优秀研究生主要事迹
2014/06/03 职场文书
12.4全国法制宣传日活动总结
2014/11/01 职场文书
2014年建筑工作总结
2014/11/26 职场文书
2014年度培训工作总结
2014/11/27 职场文书
党支部季度考核意见
2015/06/02 职场文书
未婚证明范本
2015/06/15 职场文书
win10电脑老是死机怎么办?win10系统老是死机的解决方法
2022/08/05 数码科技