原生js滑动轮播封装


Posted in Javascript onJuly 31, 2020

本文实例为大家分享了原生js滑动轮播的具体代码,供大家参考,具体内容如下

封装滑动轮播

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <title>cmm无缝轮播</title>
 <style type="text/css">
 *{margin: 0 ;padding : 0}
  #container{
   height: 470px;
   width: 590px;
   border: 1px solid red;
   position: relative;
   margin: 50px auto;
  }
  #box{
   position: absolute;
   list-style: none;
   
  }
  #box li{
   float: left;
  }
  #pages {
 width: 100%;
 height: 30px;
 background: #ccc;
 position: absolute;
 bottom: 0;
 }

 #pages i {
 width: 20px;
 height: 20px;
 display: inline-block;
 border-radius: 10px;
 background: #fff;
 margin: 5px;
 }

 #pages i.current {
 background: #f00;
 }

 #prev, #next {
 width: 45px;
 height: 100px;
 position: absolute;
 top: 0;
 bottom: 0;
 margin: auto;
 background: #ccc;
 line-height: 100px;
 text-align: center;
 font-size: 40px;
 color: #fff;
 }
 #next {
 right: 0;
 }
 </style>
</head>
<body>
 <div id="container">
 <ul id="box">
 <li><img src="images/1.jpg"></li>
 <li><img src="images/2.jpg"></li>
 <li><img src="images/3.jpg"></li>
 <li><img src="images/4.jpg"></li>
 </ul>
 <div id="pages"></div>
 <div id="prev"><</div>
 <div id="next">></div>
 </div>

 <script src="js/tools.js"></script>
 <script>
  var lis = $("li"),
   length = lis.length,
   liWidth = lis[0].clientWidth,
   currentIndex = 0,
   nextIndex = 1,
   timer = null,
   move = null,
   circls = null,
   durations = 2000;

 // 动态设置ul宽度
 $("#box").style.width = length * liWidth + "px";

 // 动态设置小圆点
 var html = "";
 for(var i = 0 ;i <length ;i++){
  html += "<i></i>"
 }
 $("#pages").innerHTML= html;
 circls = $("i");
 circls[0].className = "current";

 // 切换动画
 move = function(){
  // 设置box运动终点值
  var _left = -1 * nextIndex * liWidth;

  // 开始动画
  animate($("#box"),{left:_left},200)

  // 修改小圆点样式
  circls[currentIndex].className = "";
  circls[nextIndex].className = "current";

  // 修改索引
  currentIndex = nextIndex;
  nextIndex++;
  if(nextIndex >= length){
   nextIndex = 0;
  }
 }


 // 自动动画
 timer = setInterval(move, durations)

 // container中鼠标移入,移出事件
 on($("#container"),"mouseenter",function(){
  clearInterval(timer);
 })
 on($("#container"),"mouseleaver",function(){
  timer = setInterval(move, durations);
 })

 // 点击小圆点,切换至对应的图片
 on($("#pages"),"click",function(e){
  e = e || event;
  var src = e.target || src.Element;
  if(src.nodeName === "I"){
   var _index = Array.from(circls).indexOf(src);
   if(_index === currentIndex){
    return
   }
   nextIndex = _index;
   move();
  }
 })

 // 点击翻页进行切换
 on($("#prev"),"click",function(){
  nextIndex = currentIndex - 1;
  if(nextIndex < 0){
   nextIndex = length;
  }
  move();
 })
 on($("#next"),"click",function(){
  move();
 })
 </script>
</body>
</html>

更多关于轮播图效果的专题,请点击下方链接查看学习

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

Javascript 相关文章推荐
javascript mouseover、mouseout停止事件冒泡的解决方案
Apr 07 Javascript
javascript写的日历类(基于pj)
Dec 28 Javascript
AJAX分页的代码(后台asp.net)
Feb 14 Javascript
JS上传图片前的限制包括(jpg jpg gif及大小高宽)等
Dec 19 Javascript
jquery使用jxl插件导出excel示例
Apr 14 Javascript
JS+CSS实现简易的滑动门效果代码
Sep 24 Javascript
javascript下拉列表中显示树形菜单的实现方法
Nov 17 Javascript
Js获取当前日期时间及格式化代码
Sep 17 Javascript
Vue组件化开发思考
Feb 02 Javascript
小程序组件之仿微信通讯录的实现代码
Sep 12 Javascript
对vuex中getters计算过滤操作详解
Nov 06 Javascript
vue props 一次传多个值实例
Jul 22 Javascript
Vue+ElementUI 中级联选择器Bug问题的解决
Jul 31 #Javascript
jquery轮播图插件使用方法详解
Jul 31 #jQuery
在Uni中使用Vue的EventBus总线机制操作
Jul 31 #Javascript
jQuery带控制按钮轮播图插件
Jul 31 #jQuery
Vue之封装公用变量以及实现方式
Jul 31 #Javascript
three.js 将图片马赛克化的示例代码
Jul 31 #Javascript
three.js 如何制作魔方
Jul 31 #Javascript
You might like
echo, print, printf 和 sprintf 区别
2006/12/06 PHP
PHP 数据库树的遍历方法
2009/02/06 PHP
PhpMyAdmin中无法导入sql文件的解决办法
2010/01/08 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
2014/06/13 PHP
php实现json编码的方法
2015/07/30 PHP
PHP编程之设置apache虚拟目录
2016/07/08 PHP
PHP使用Redis替代文件存储Session的方法
2017/02/15 PHP
PHP+Ajax实现的检测用户名功能简单示例
2019/02/12 PHP
基于jquery的回到页面顶部按钮
2011/06/27 Javascript
jquery中的常用事件bind、hover、toggle等示例介绍
2014/07/21 Javascript
用jquery修复在iframe下的页面锚点失效问题
2014/08/22 Javascript
JavaScript中的console.dir()函数介绍
2014/12/29 Javascript
手机端页面rem宽度自适应脚本
2015/05/20 Javascript
网页从弹窗页面单选框传值至父页面代码分享
2015/09/29 Javascript
原生js实现form表单序列化的方法
2018/08/02 Javascript
angular4自定义表单控件[(ngModel)]的实现
2018/11/23 Javascript
如何使用 vue + d3 画一棵树
2018/12/03 Javascript
动态内存分配导致影响Javascript性能的问题
2018/12/18 Javascript
JS实现马赛克图片效果完整示例
2019/04/13 Javascript
解决layer图标icon不加载的问题
2019/09/04 Javascript
微信小程序整个页面的自动适应布局的实现
2020/07/12 Javascript
Vue 实现对quill-editor组件中的工具栏添加title
2020/08/03 Javascript
解决vue项目本地启动时无法携带cookie的问题
2021/02/06 Vue.js
[01:02:03]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS VG
2014/05/26 DOTA
Python 多线程的实例详解
2017/09/07 Python
python如何修改装饰器中参数
2018/03/20 Python
Python Django 实现简单注册功能过程详解
2019/07/29 Python
python库matplotlib绘制坐标图
2019/10/18 Python
pytorch 中pad函数toch.nn.functional.pad()的用法
2020/01/08 Python
python使用hdfs3模块对hdfs进行操作详解
2020/06/06 Python
Python安装Bs4的多种方法
2020/11/28 Python
使用HTML5 Geolocation实现一个距离追踪器
2018/04/09 HTML / CSS
猎人靴英国官网:Hunter Boots
2017/02/02 全球购物
曼联官方网上商店:Manchester United Direct
2017/07/28 全球购物
自动化系在校本科生求职信
2013/10/23 职场文书
css display table 自适应高度、宽度问题的解决
2021/05/07 HTML / CSS