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静态的动态
Sep 18 Javascript
js 单引号 传递方法
Jun 22 Javascript
JavaScript 原型与继承说明
Jun 09 Javascript
js修改table中Td的值(定义td的双击事件)
Jan 10 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
Sep 23 Javascript
js智能获取浏览器版本UA信息的方法
Aug 08 Javascript
用最简单的方法判断JavaScript中this的指向(推荐)
Sep 04 Javascript
Vue底层实现原理总结
Feb 17 Javascript
vue cli使用融云实现聊天功能的实例代码
Apr 19 Javascript
JS实现商品橱窗特效
Jan 09 Javascript
解决vue+router路由跳转不起作用的一项原因
Jul 19 Javascript
vue3种table表格选项个数的控制方法
Apr 14 Vue.js
详解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 获取当前访问的url文件名的方法小结
2010/02/08 PHP
PHP getallheaders无法获取自定义头(headers)的问题
2016/03/23 PHP
幻宇的层模拟窗口效果-提供演示和下载
2007/01/20 Javascript
如何用js控制css中的float的代码
2007/08/16 Javascript
JavaScript Event学习第十一章 按键的检测
2010/02/10 Javascript
jquery改变tr背景色的示例代码
2013/12/28 Javascript
Express.JS使用详解
2014/07/17 Javascript
JavaScript字符串对象fromCharCode方法入门实例(用于把Unicode值转换为字符串)
2014/10/17 Javascript
触屏中的JavaScript事件分析
2015/02/06 Javascript
Web开发必知Javascript技巧大全
2016/02/23 Javascript
jQuery插件passwordStrength密码强度指标详解
2016/06/24 Javascript
JS闭包原理与应用经典示例
2018/12/20 Javascript
解决一个微信号同时支持多个环境网页授权问题
2019/08/07 Javascript
基于iview-admin实现动态路由的示例代码
2019/10/02 Javascript
vue实现弹幕功能
2019/10/25 Javascript
Vue根据条件添加click事件的方式
2019/11/09 Javascript
ES6函数和数组用法实例分析
2020/05/23 Javascript
Vue组件跨层级获取组件操作
2020/07/27 Javascript
Python实现字典按照value进行排序的方法分析
2017/12/23 Python
pandas表连接 索引上的合并方法
2018/06/08 Python
pandas pivot_table() 按日期分多列数据的方法
2018/11/16 Python
python 实现将txt文件多行合并为一行并将中间的空格去掉方法
2018/12/20 Python
浅析Python与Mongodb数据库之间的操作方法
2019/07/01 Python
Python图像处理PIL各模块详细介绍(推荐)
2019/07/17 Python
Django 简单实现分页与搜索功能的示例代码
2019/11/07 Python
pytorch:实现简单的GAN示例(MNIST数据集)
2020/01/10 Python
python3.6.5基于kerberos认证的hive和hdfs连接调用方式
2020/06/06 Python
css sprite简单实例
2016/05/23 HTML / CSS
css3 仿写阿里云水纹效果的示例代码
2018/02/10 HTML / CSS
日本民宿预约平台:STAY JAPAN
2017/07/01 全球购物
技能比赛获奖感言
2014/02/14 职场文书
2015教师个人德育工作总结
2015/07/22 职场文书
卫生主题班会
2015/08/14 职场文书
“学党章、守党纪、讲党规”学习心得体会
2016/01/14 职场文书
解决Pytorch半精度浮点型网络训练的问题
2021/05/24 Python
Spring Boot配合PageHelper优化大表查询数据分页
2022/04/20 Java/Android