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 相关文章推荐
ExtJS GridPanel 根据条件改变字体颜色
Mar 08 Javascript
Html5的placeholder属性(IE兼容)实现代码
Aug 30 Javascript
简介JavaScript中search()方法的使用
Jun 06 Javascript
详解JavaScript的变量和数据类型
Nov 27 Javascript
基于Jquery插件Uploadify实现实时显示进度条上传图片
Mar 26 Javascript
JS中Map和ForEach的区别
Feb 05 Javascript
node.js读取Excel数据(下载图片)的方法示例
Aug 02 Javascript
JS中注入eval, Function等系统函数截获动态代码
Apr 03 Javascript
Layer.js实现表格溢出内容省略号显示,悬停显示全部的方法
Sep 16 Javascript
nest.js 使用express需要提供多个静态目录的操作方法
Oct 24 Javascript
Vue分页效果与购物车功能
Dec 13 Javascript
JavaScript实现图片放大预览效果
Nov 02 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 删除一个数组中的某个值.兼容多维数组!
2012/02/18 PHP
php中动态调用函数的方法
2015/03/16 PHP
thinkPHP3.2.3实现阿里大于短信验证的方法
2018/06/06 PHP
php curl发送请求实例方法
2019/08/01 PHP
laravel 解决后端无法获取到前端Post过来的值问题
2019/10/22 PHP
asp 取文本框名称代码
2008/12/02 Javascript
jQuery.Autocomplete实现自动完成功能(详解)
2010/07/13 Javascript
jQuery实现响应浏览器缩放大小并改变背景颜色
2014/10/31 Javascript
jQuery轻松实现表格的隔行变色和点击行变色的实例代码
2016/05/09 Javascript
jQuery Mobile中的button按钮组件基础使用教程
2016/05/23 Javascript
最佳的JavaScript错误处理实践
2016/07/16 Javascript
基于JS实现翻书效果的页面切换样式
2017/02/16 Javascript
Angular在一个页面中使用两个ng-app的方法
2017/02/20 Javascript
关于JavaScript语句后面的分号问题
2017/12/07 Javascript
python中二维阵列的变换实例
2014/10/09 Python
pandas全表查询定位某个值所在行列的方法
2018/04/12 Python
Python数据可视化库seaborn的使用总结
2019/01/15 Python
Python使用matplotlib 模块scatter方法画散点图示例
2019/09/27 Python
浅谈keras中的目标函数和优化函数MSE用法
2020/06/10 Python
python中setuptools的作用是什么
2020/06/19 Python
PyCharm设置注释字体颜色以及是否倾斜的操作
2020/09/16 Python
Python之多进程与多线程的使用
2021/02/23 Python
土木工程专业大学毕业生求职信
2013/10/13 职场文书
监理资料员岗位职责
2014/01/03 职场文书
青年教师典范事迹材料
2014/01/31 职场文书
体育教师求职信
2014/05/24 职场文书
平安工地汇报材料
2014/08/19 职场文书
网络营销计划书
2015/01/17 职场文书
颐和园英文导游词
2015/01/30 职场文书
2015年幼儿园德育工作总结
2015/05/25 职场文书
2015秋季开学典礼致辞
2015/07/16 职场文书
三年级作文之小小梦想
2019/12/06 职场文书
mysq启动失败问题及场景分析
2021/07/15 MySQL
Python标准库pathlib操作目录和文件
2021/11/20 Python
解决 Redis 秒杀超卖场景的高并发
2022/04/12 Redis
Windows server 2016服务器基本设置
2022/08/14 Servers