博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
轮播图
阅读量:6229 次
发布时间:2019-06-21

本文共 3748 字,大约阅读时间需要 12 分钟。

css部分

.page {  width: 740px;  height: 350px;  float: left;  margin: 10px 10px 0 10px;  overflow: hidden;  position: relative;}.page ul {  position: absolute;  left: 0;}.lli {  float: left;}.uul {  width: 900%;  height: 100%;}.d-ol {  position: absolute;  right: 12px;  bottom: 12px;  height: 19px}.ool {  list-style-type: none;}.ool li {  float: left;}.ool li span {  display: inline-block;  width: 18px;  height: 18px;  line-height: 18px;  overflow: hidden;  margin-left: 7px;  color: #333;  text-align: center;  cursor: pointer;  background: url(../images/imgPlayer.png) no-repeat -28px -90px;}li.active span {  color: #fff;  background-position: 0 -90px;}.prev {  display: none;  background: url(../images/newx-flash.png) no-repeat 0 0;  left: 20px;  width: 36px;  cursor: pointer;  position: absolute;  top: 152px;  height: 50px;  overflow: hidden;}.next {  display: none;  background: url(../images/newx-flash.png) no-repeat -47px 0;  right: 10px;  width: 36px;  cursor: pointer;  position: absolute;  top: 152px;  height: 50px;  overflow: hidden;}复制代码

html部分

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
复制代码

js部分,之前分享了一个封装的动画函数 这里需要引入一下 主要思路就是 根据动画函数 每两秒让 定义的i加一 这样每两秒他就换到了一个新的图片 多了一张图片是为了实现无缝轮播 在显示最后一张图片之后 让他下一张显示第一张图片 紧接着让整个ul的left=0 他会瞬间回到第一张图片 这样 就完成了 从头开始的操作 。

var oView = document.querySelector('.page');var viewWidth = oView.offsetWidth;// 3.获取ulvar uUl = document.querySelector('.uul');console.log(uUl);var uLi = document.querySelectorAll('.lli');//获取下面的圆点var oOl = document.querySelector('.ool');var oLi=document.querySelectorAll('.ool li')var prevBtn = document.querySelector('.prev');var nextBtn = document.querySelector('.next');var num = 0;var timeId = setInterval(fn, 1500)//图片运动的方法function fn() {  if (num == uLi.length - 1) {    num = 0;    uUl.style.left = 0 + 'px';  }  num++;  animate(uUl, -num * viewWidth);// 焦点样式  if (num > oLi.length - 1) {      oLi[oLi.length-1].className = "";      oLi[0].className = 'active';  } else {       for (var j = 0; j < oLi.length; j++) {      oLi[j].removeAttribute('class');    }    oLi[num].className = 'active';  }  }// 下一张图片nextBtn.onclick = fn;// 上一张图片prevBtn.onclick = function () {  if (num == 0) {    num = uLi.length - 1;    uUl.style.left = -num * viewWidth + 'px';  }  num--;   animate(uUl, -num * viewWidth);  for (var j = 0; j < oLi.length; j++) {    oLi[j].removeAttribute('class');  }  oLi[num].className = 'active';}// 点击按钮换图片for (var i = 0; i < oLi.length; i++) {  (function (i) {    oLi[i].onclick = function () {      // var dis = index - i;      console.log(i);          for (var j = 0; j < oLi.length; j++) {        oLi[j].className = ' ';      }      this.className = 'active';      uUl.style.left = -i * viewWidth + 'px'      // console.log(this.index);                // clearInterval(timeId);                    /*这里让num=i 是为了解决当点击下面的小圆点 图片虽然会跳转到  对应的图片位置    但是 当移出之后 轮播图会回到 原来停止的位置 继续播放  但是当我让 圆点的索引和    图片的索引相等的时候 他会在当前位置继续播放    */      num = i;        }  })(i)}// 鼠标移入 让轮播图暂停oView.onmouseover = function () {  clearInterval(timeId);  prevBtn.style.display = 'block';  nextBtn.style.display = 'block';  }// 鼠标移出 让轮播图继续oView.onmouseout = function () {  timeId = setInterval(fn, 1500);  prevBtn.style.display = 'none';  nextBtn.style.display = 'none';}复制代码

转载于:https://juejin.im/post/5c272032f265da616b10c96a

你可能感兴趣的文章
tcp echo server libuv
查看>>
Random Processes
查看>>
操作argc, argv的经典写法
查看>>
phpStudy中升级MySQL版本到5.7.17的方法步骤
查看>>
SQLServer BI 学习笔记
查看>>
sublim课程2 sublim编辑器的使用(敲代码的时候把这个放旁边用)
查看>>
什么是Solr
查看>>
oracle 12cR1&12cR2核心高实用性新特性
查看>>
pandas Series的sort_values()方法
查看>>
SQL SERVER CHAR ( integer_expression )各版本返回值差异的案例
查看>>
pytest文档7-pytest-html生成html报告
查看>>
微信小程序弹窗组件
查看>>
安装使用ionic3
查看>>
结构体初始化
查看>>
java中this的N种使用方法
查看>>
Windows IIS安装php
查看>>
mingw 设置python 设置git环境变量
查看>>
linux 系统下如何进行用户之间的切换
查看>>
设计一个算法移除字符串中的重复字符,并写出测试用例。
查看>>
goole机器学习视频链接【学习笔记】
查看>>