<!-- 这个animate.js 必须写到 index.js的上面引入 -->
<script src="js/animate.js"></script>
<!-- 引入我们首页的js文件 -->
<script src="js/index.js"></script>

HTML代码

------------------------------------------------------

<div class="focus fl">
<!-- 左侧按钮 -->
<a href="javascript:;" class="arrow-l">
&lt;
</a>
<!-- 右侧按钮 -->
<a href="javascript:;" class="arrow-r">  </a>
<!-- 核心的滚动区域 -->
<ul>
<li>
<a href="#"><img src="upload/focus.jpg" alt=""></a>
</li>
<li>
<a href="#"><img src="upload/focus1.jpg" alt=""></a>
</li>
<li>
<a href="#"><img src="upload/focus2.jpg" alt=""></a>
</li>
<li>
<a href="#"><img src="upload/focus3.jpg" alt=""></a>
</li>
</ul>
<!-- 小圆点 -->
<ol class="circle">

</ol>
</div>

------------------------------------------------

js代码

----------------------------------------------------------------------

window.addEventListener(‘load’,function(){

//1、获取元素

var arrow-l = document.querySelector(‘.arrow-l’);

var arrow-r = document.querySelector(‘.arrow-r’);

var focus = document.querySelector(‘.focus’);

var focuwidth = focus.offsetWidth;

focus.addEventListener(‘mouseenter’,function(){

  arrow-l.style.display = ‘block’;

  arrow-r.style.display = ‘block’;

});

focus.addEventListener(‘mouseleave’,function(){

  arrow-l.style.display = ‘none’;

  arrow-r.style.display =‘none’;

});

//2、动态生成小圆点

var ul = focus.querySelector(‘ul’);

var ol = focus.querySelector(‘ol’);

for(var i = 0;i<ul.children.length;i++){  //使用for循环,根据banner图片的数量生成li小圆点的数量

  var i = document.createElement(‘li’);

  li.setAttribute(‘index’,i);

  ol.appendChild(li);

//3.在小圆点生成的同时,用排他思想并且绑定点击事件实现颜色填充的切换

  li.addEventListener(‘click’,function(){ //再点击事件里使用for循环的排他思想

  //清除掉所有li里面的current

  for(var i = 0;i<ol.children.length;i++){

    ol.children[i].className = ‘’;

  }

  this.className = ‘current’;

  var index = this.getAttribute(‘index’);  //声明一个变量,存储点击获得的自定义的属性

  //7.当我们点击了小圆点的 li  就要把这个li的索引值给 箭头的num,因为小圆点的li和箭头num都是独立的,只能单独执行自己。

  num= index;  //num是全局变量

  //当我们点击了小圆点,再点击箭头,小圆点也要跟着移动到下一个小雨点,circle是控制小圆点的,所以也要把inde给circle

  circle = index;

  animate(ul, -index*focusWidth); //调用动画函数,传入实参ul,移动的距离是小圆点的索引*图片的宽度(必须是负值);

  })

}

  ol.children[0] = ‘current’;

  //5.cloneNode第一张图片放到最后面

  var first = ul.children[0].cloneNode(true); //因为cloneNode是写在了生成小圆点的下面,所以小圆点不会多一个

  ul.appendCHild(first);

  //4.点击右箭头,图片滚动一张

  var num = 0;

  var circle = 0;  //全局变量  控制小圆点的播放

  arrow_r.addEventListener(‘click’,function(){

    //如果走到最后一张图片,left要快速复原 等于0

    if(num==ul.children.length-1){

      ul.style.left = 0;

      num=0;

    }

    num++;

    animate(ul,-num*focusWidth);

    //6.点击右侧按钮,小圆点一起变化,可以在声明一个变量控制小圆点

    circle++;

    //先清除小圆点的类名current

    //如果circle==4,说明我们走到了克隆的这张图片了,因为图片是5张,小圆点是4个 小圆点的第四个对应图片的第五张

    if(circle==ol.children.length){

      circle = 0; 

    }

    circleChange();

    

  });

  //左侧按钮

  

  arrow_l.addEventListener(‘click’,function(){

    //如果走到最后一张图片,left要快速复原 等于0

    if(num==ul.children.length-1){

      //num=ul.children.length-1;

      ul.style.left =-num*focusWidth+‘px’;

      

    }

    num--;

    animate(ul,-num*focusWidth);

    //6.点击右侧按钮,小圆点一起变化,可以在声明一个变量控制小圆点

    circle--;

    //先清除小圆点的类名current

    //如果circle<0,说明我们走到了第一张图片了,小圆点要改为第四个小圆点

    if(circle<0){

      circle = ol.children.length-1; 

    }

   

    circleChange();

  });

  function circleChange(){

    

   for(var i = 0;i<ol.child.length;i++){

      ol.children[i].className = ‘’;

    }

    //留下当前的小圆点

    ol.children[circle].className = ‘current’;

  }

})

js实现无缝连接轮播图(七)实现左侧按钮的功能的更多相关文章

  1. js实现无缝连接轮播图(二)实现自定义属性,根据banner图片的数量动态生成小圆点

    <!-- 这个animate.js 必须写到 index.js的上面引入 --><script src="js/animate.js"></scrip ...

  2. jQuery与原生js实现banner轮播图

    jQuery与原生js实现banner轮播图: (jq需自己加载)(图片需自己加载) <!DOCTYPE html> <html> <head> <meta ...

  3. 原生JS实现简易轮播图

    原生JS实现简易轮播图(渐变?) 最近做网页总是会用到轮播图,我就把之前写的轮播图单独拿出来吧,如果有...如果真的有人也需要也可以复制去用用啊..哈~.. window.onload = funct ...

  4. JS+css3焦点轮播图PC端

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. js原生实现轮播图效果(面向对象编程)

    面向对象编程js原生实现轮播图效果 1.先看效果图 2.需要实现的功能: 自动轮播 点击左右箭头按钮无缝轮播 点击数字按钮切换图片 分析:如何实现无缝轮播? 在一个固定大小的相框里有一个ul标签,其长 ...

  6. 【原】运动版的轮播图,有左右按钮和单独分页,原生JS版

    运动版的轮播图,有左右按钮和单独分页 这个例子重点在于: 运动框架的复习,要灵活运动回调函数 始终以全局变量iNum来控制oUl的移动目的地,每次有任何动作,都是先判断iNum并改变iNum后去调用运 ...

  7. 自己用原生JS写的轮播图,支持移动端触摸滑动,分页器圆点可以支持mouseover鼠标移入和click点击,高手看了勿喷哈

    自己用原生JavaScript写的轮播图,分页器圆点按钮可支持click点击,也可支持mouseover鼠标悬浮触发,同时支持移动端触摸滑动,有兴趣的友友可以试试哈,菜鸟一枚,高手看了勿喷,请多多指正 ...

  8. 原生js写简单轮播图方式1-从左向右滑动

    轮播图就是让图片每隔几秒自动滑动,达到图片轮流播放的效果.轮播图从效果来说有滑动式的也有渐入式的,滑动式的轮播图就是图片从左向右滑入的效果,渐入式的轮播图就是图片根据透明度渐渐显示的效果,这里说的是实 ...

  9. JS 实现动态轮播图

    JavaScript实现轮播图思路 + html/css + js源码 整个轮播图的效果是通过js代码,操作dom, 拿到html我们需要的元素,控制整个ul的距离浏览器左边的位置,让排好的图片依次出 ...

随机推荐

  1. 福利来了~Linux一键部署包,环境安装不用愁!!!

    前言 昨天一哥们的弟弟突然问我有没有部署过的Linux,公司连个运维都没有,服务器都要后端部署.... 你有没有相似的遭遇呢?公司规模小,后端即是运维,一份工资干两份活,哈哈~ 为了解决这老弟的困惑, ...

  2. docker 部署 zabbix

    docker部署zabbix   我相信大家都已经会再物理机上跑zabbix并且监控了,那么有没有想过在docker中跑zabbix?下面咱们来看看如何在docker中搭建zabbix并且监控 部署环 ...

  3. matlab中矩阵的表示与简单操作

    原文地址为:matlab矩阵的表示和简单操作 一.矩阵的表示在MATLAB中创建矩阵有以下规则: a.矩阵元素必须在”[ ]”内: b.矩阵的同行元素之间用空格(或”,”)隔开: c.矩阵的行与行之间 ...

  4. 突发!美商务部宣布封禁微信,TikTok——面对科技封锁,如何应对

    刚刚美国商务部忽然发布了这则新闻,为了回应特朗普2020年8月6号的行政令,称这些应用程序存在安全威胁. 禁令中称,自2020年9月20日起,美国政府将: 1 禁止通过美国在线移动应用程序商店分发或维 ...

  5. 苏大文正节点一 ORA-00603 ORA-27504 ORA-27300 ORA-27301 ORA-27302 BUG

      Problem Description --------------------------------------------------- Tue Sep 01 04:05:33 2020 s ...

  6. Java Web学习(二)数据加密

    一.Tomcat 体系 首先通过一幅图来了解下tomcat的运行体系: Tomcat服务器的启动是基于一个server.xml文件的. 启动流程: 首先启动一个Server,Server里面就会启动S ...

  7. LazySysAdmin 靶机渗透

    Vulnhub-LazySysAdmin 靶机渗透 发现六个开放的端口,分别为22,80,139,445,3306以及6667. 139/tcp open netbios-ssn Samba smbd ...

  8. 【FastDFS】SpringBoot整合FastDFS实战,我只看这一篇!!

    写在前面 在<[FastDFS]小伙伴们说在CentOS 8服务器上搭建FastDFS环境总报错?>和<[FastDFS]面试官:如何实现文件的大规模分布式存储?(全程实战)> ...

  9. Python-语法糖(装饰器)

    什么是高阶函数? -- 把函数名当做参数传给另外一个函数,在另外一个函数中通过参数调用执行 #!/usr/bin/python3 __author__ = 'beimenchuixue' __blog ...

  10. Python-通过twisted实现数据库异步插入?

    如何通过twisted实现数据库异步插入? 1. 导入adbapi 2. 生成数据库连接池 3. 执行数据数据库插入操作 4. 打印错误信息,并排错 #!/usr/bin/python3 __auth ...