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 相关文章推荐
js 模拟实现类似c#下的hashtable的简单功能代码
Jan 24 Javascript
js 纯数字不重复排列的另类方法
Jul 17 Javascript
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题
Dec 11 Javascript
html5+javascript制作简易画板附图
Apr 25 Javascript
javascript定义变量时带var与不带var的区别分析
Jan 12 Javascript
Javascript前端经典的面试题及答案
Mar 14 Javascript
ReactNative页面跳转Navigator实现的示例代码
Aug 02 Javascript
详解vue 单页应用(spa)前端路由实现原理
Apr 04 Javascript
vue 自定义 select内置组件
Apr 10 Javascript
实例讲解vue源码架构
Jan 24 Javascript
微信小程序云开发之数据库操作
May 18 Javascript
js 动态校验开始结束时间的实现代码
May 25 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
PHP 和 MySQL 开发的 8 个技巧
2006/10/09 PHP
PHP 伪静态隐藏传递参数名的四种方法
2010/02/22 PHP
php下用cookie统计用户访问网页次数的代码
2010/05/09 PHP
php 时间time与日期date之间的使用详解及区别
2016/11/07 PHP
PHP排序二叉树基本功能实现方法示例
2018/05/26 PHP
PHP实现通过文本文件统计页面访问量功能示例
2019/02/13 PHP
Ext.MessageBox工具类简介
2009/12/10 Javascript
常见表单重复提交问题整理及解决方法
2013/11/13 Javascript
js动画效果制件让图片组成动画代码分享
2014/01/14 Javascript
JS简单实现动画弹出层效果
2015/05/05 Javascript
javascript常用功能汇总
2015/07/05 Javascript
javascript连续赋值问题
2015/07/08 Javascript
JavaScript电子时钟倒计时第二款
2016/01/10 Javascript
angularJS 指令封装回到顶部示例详解
2017/01/22 Javascript
深入探究angular2 UI组件之primeNG用法
2017/07/26 Javascript
layer.js之回调销毁对话框的例子
2019/09/11 Javascript
[46:14]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python检查指定文件是否存在的方法
2015/07/06 Python
解决nohup重定向python输出到文件不成功的问题
2018/05/11 Python
Python中面向对象你应该知道的一下知识
2019/07/10 Python
Python类继承和多态原理解析
2020/02/05 Python
python实现梯度下降法
2020/03/24 Python
Selenium常见异常解析及解决方案示范
2020/04/10 Python
基于ccs3的timeline时间线实现方法
2020/04/30 HTML / CSS
美国知名眼镜网站:Target Optical
2020/04/04 全球购物
介绍一下gcc特性
2012/01/20 面试题
性能测试工程师的面试题
2015/02/20 面试题
校园之声广播稿
2014/01/31 职场文书
腾讯广告词
2014/03/19 职场文书
竞选文艺委员演讲稿
2014/04/28 职场文书
出国留学担保书
2014/05/20 职场文书
房产销售独家委托书范本
2014/10/01 职场文书
个人党性锻炼总结
2015/03/05 职场文书
通知函的格式
2015/04/27 职场文书
小学运动会报道稿
2015/07/22 职场文书