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 相关文章推荐
JavaScript 对象成员的可见性说明
Oct 16 Javascript
javascript面向对象的方式实现的弹出层效果代码
Jan 28 Javascript
浅谈jquery中delegate()与live()
Jun 22 Javascript
js实现当复选框选择匿名登录时隐藏登录框效果
Aug 14 Javascript
jQuery 1.9.1源码分析系列(十四)之常用jQuery工具
Dec 02 Javascript
jQuery实现页面顶部显示的进度条效果完整实例
Dec 09 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
Aug 01 Javascript
js中new一个对象的过程
Feb 20 Javascript
JS和canvas实现俄罗斯方块
Mar 14 Javascript
node.js+express+mySQL+ejs+bootstrop实现网站登录注册功能
Jan 12 Javascript
基于React+Redux的SSR实现方法
Jul 03 Javascript
vue css 引入asstes中的图片无法显示的四种解决方法
Mar 16 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 什么是PEAR?(第二篇)
2009/03/19 PHP
php中全局变量global的使用演示代码
2011/05/18 PHP
ecshop 批量上传(加入自定义属性)
2012/03/20 PHP
解析PHP工厂模式的好处
2013/06/18 PHP
windows 2008r2+php5.6.28环境搭建详细过程
2019/06/18 PHP
CSS3画一个阴阳八卦图
2021/03/09 HTML / CSS
IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
2009/12/27 Javascript
jquery构造器的实现代码小结
2011/05/16 Javascript
js语法学习之判断一个对象是否为数组
2014/05/13 Javascript
javascript实现按回车键切换焦点
2015/02/09 Javascript
jQuery实现浮动层随浏览器滚动条滚动的方法
2015/09/22 Javascript
js添加千分位的实现代码(超简单)
2016/08/01 Javascript
jQuery实现点击后高亮背景固定显示的菜单效果【附demo源码下载】
2016/09/21 Javascript
JS函数进阶之继承用法实例分析
2020/01/15 Javascript
Vue的Eslint配置文件eslintrc.js说明与规则介绍
2020/02/03 Javascript
编写一个javascript元循环求值器的方法
2020/04/14 Javascript
微信小程序开发(一):服务器获取数据列表渲染操作示例
2020/06/01 Javascript
[01:31](回顾)杀出重围,决战TI之巅
2014/07/01 DOTA
[07:09]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant 选手采访
2021/03/11 DOTA
把大数据数字口语化(python与js)两种实现
2013/02/21 Python
python使用pyhook监控键盘并实现切换歌曲的功能
2014/07/18 Python
python计算方程式根的方法
2015/05/07 Python
用Python将动态GIF图片倒放播放的方法
2016/11/02 Python
Python实现的递归神经网络简单示例
2017/08/11 Python
DataFrame 将某列数据转为数组的方法
2018/04/13 Python
python实现AES和RSA加解密的方法
2019/03/28 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
2019/08/31 Python
浅谈tensorflow 中的图片读取和裁剪方式
2020/06/30 Python
请说出以下代码输出什么
2013/08/30 面试题
总经理岗位职责
2013/11/09 职场文书
党员2014两会学习心得体会
2014/03/17 职场文书
聊聊JS ES6中的解构
2021/04/29 Javascript
redis cluster支持pipeline的实现思路
2021/06/23 Redis
Python Matplotlib绘制条形图的全过程
2021/10/24 Python
Python开发五子棋小游戏
2022/05/02 Python
浅析JavaScript中的变量提升
2022/06/01 Javascript