JavaScript实现轮播图片完整代码


Posted in Javascript onMarch 07, 2020

本文实例为大家分享了JavaScript实现轮播图片的具体代码,供大家参考,具体内容如下

JS代码注释清晰明了,一看就懂!

<!DOCTYPE html>
<html lang="en">

 <head>
 <meta charset="UTF-8">
 <title>最简单的轮播效果</title>
 <style>
 * {
 margin: 0;
 padding: 0
 }
 
 .box {
 width: 500px;
 height: 300px;
 border: 1px solid #ccc;
 margin: 100px auto;
 padding: 5px;
 }
 
 .inner {
 width: 500px;
 height: 300px;
 position: relative;
 overflow: hidden;
 }
 
 .inner img {
 width: 500px;
 height: 300px;
 vertical-align: top
 }
 
 ul {
 width: 1000%;
 position: absolute;
 list-style: none;
 left: 0;
 top: 0;
 }
 
 .inner li {
 float: left;
 }
 
 ol {
 position: absolute;
 height: 20px;
 right: 20px;
 bottom: 20px;
 text-align: center;
 padding: 5px;
 }
 
 ol li {
 display: inline-block;
 width: 20px;
 height: 20px;
 line-height: 20px;
 background-color: #fff;
 margin: 5px;
 cursor: pointer;
 }
 
 ol .current {
 background-color: red;
 }
 </style>
 </head>

 <body>
 <div class="box" id="box">
 <div class="inner">
 <!--轮播图-->
 <ul>
  <li>
  <div><img src="img/001.png" alt=""></div>
  </li>
  <li>
  <div><img src="img/1.png" alt=""></div>
  </li>
  <li>
  <div><img src="img/6.png" alt=""></div>
  </li>
  <li>
  <div><img src="img/3.png" alt=""></div>
  </li>
  <li>
  <div><img src="img/4.png" alt=""></div>
  </li>

 </ul>
 </div>
 </div>
 <script>
 /**
 *
 * @param id 传入元素的id
 * @returns {HTMLElement | null} 返回标签对象,方便获取元素
 */
 function my$(id) {
 return document.getElementById(id);
 }
 //获取各元素,方便操作
 var box = my$("box");
 var inner = box.children[0];
 var ulObj = inner.children[0];
 var list = ulObj.children;
 var olObj = inner.children[1];
 var imgWidth = inner.offsetWidth;
 var right = my$("right");
 var pic = 0;
 //根据li个数,创建小按钮
 for(var i = 0; i < list.length; i++) {
 var liObj = document.createElement("li");
 //olObj.appendChild(liObj);
 liObj.innerText = (i + 1);
 liObj.setAttribute("index", i);
 //为按钮注册mouseover事件
 liObj.onmouseover = function() {
  //先清除所有按钮的样式
  for(var j = 0; j < olObj.children.length; j++) {
  olObj.children[j].removeAttribute("class");
  }
  this.className = "current";
  pic = this.getAttribute("index");
  animate(ulObj, -pic * imgWidth);
 }
 }
 //设置ol中第一个li有背景颜色
 //olObj.children[0].className = "current";
 //克隆一个ul中第一个li,加入到ul中的最后=====克隆
 ulObj.appendChild(ulObj.children[0].cloneNode(true));
 var timeId = setInterval(onmouseclickHandle, 4000);
 function onmouseclickHandle() {
 //如果pic的值是5,恰巧是ul中li的个数-1的值,此时页面显示第六个图片,而用户会认为这是第一个图,
 //所以,如果用户再次点击按钮,用户应该看到第二个图片
 if(pic == list.length - 1) {
  //如何从第6个图,跳转到第一个图
  pic = 0; //先设置pic=0
  ulObj.style.left = 0 + "px"; //把ul的位置还原成开始的默认位置
 }
 pic++; //立刻设置pic加1,那么此时用户就会看到第二个图片了
 animate(ulObj, -pic * imgWidth); //pic从0的值加1之后,pic的值是1,然后ul移动出去一个图片
 
 }
 //设置任意的一个元素,移动到指定的目标位置
 function animate(element, target) {
 clearInterval(element.timeId);
 //定时器的id值存储到对象的一个属性中
 element.timeId = setInterval(function() {
  //获取元素的当前的位置,数字类型
  var current = element.offsetLeft;
  //每次移动的距离
  var step = 10;
  step = current < target ? step : -step;
  //当前移动到位置
  current += step;
  if(Math.abs(current - target) > Math.abs(step)) {
  element.style.left = current + "px";
  } else {
  //清理定时器
  clearInterval(element.timeId);
  //直接到达目标
  element.style.left = target + "px";
  }
 }, 10);
 }
 </script>
 </body>

</html>

精彩专题分享:jQuery图片轮播 JavaScript图片轮播

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

Javascript 相关文章推荐
解决AJAX中跨域访问出现'没有权限'的错误
Aug 20 Javascript
javascript new fun的执行过程
Aug 05 Javascript
HTML+CSS+JS实现完美兼容各大浏览器的TABLE固定列
Apr 26 Javascript
详解JavaScript正则表达式中的global属性的使用
Jun 16 Javascript
详解Javacript和AngularJS中的Promises
Feb 09 Javascript
JavaScript操作HTML DOM节点的基础教程
Mar 11 Javascript
深入理解事件冒泡(Bubble)和事件捕捉(capture)
May 28 Javascript
简单实现js间歇或无缝滚动效果
Jun 29 Javascript
javascript实现动态显示颜色块的报表效果
Apr 10 Javascript
详解如何使用webpack在vue项目中写jsx语法
Nov 08 Javascript
小程序显示弹窗时禁止下层的内容滚动实现方法
Mar 20 Javascript
React实现全选功能
Aug 25 Javascript
JS实现瀑布流效果
Mar 07 #Javascript
Vue中使用better-scroll实现轮播图组件
Mar 07 #Javascript
JavaScript实现栈结构Stack过程详解
Mar 07 #Javascript
node创建Vue项目步骤详解
Mar 06 #Javascript
小程序跳转到的H5页面再跳转回跳小程序的方法
Mar 06 #Javascript
小程序跳转H5页面的方法步骤
Mar 06 #Javascript
js实现点赞按钮功能的实例代码
Mar 06 #Javascript
You might like
PHP内核介绍及扩展开发指南―基础知识
2011/09/11 PHP
win7+apache+php+mysql环境配置操作详解
2013/06/10 PHP
PHP数学运算与数据处理实例分析
2016/04/01 PHP
php用户密码加密算法分析【Discuz加密算法】
2016/10/12 PHP
利用ajax和PHP实现简单的流程管理
2017/03/23 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
PHP 扩展Memcached命令用法实例总结
2020/06/04 PHP
Avengerls vs KG BO3 第一场2.18
2021/03/10 DOTA
Add Formatted Text to a Word Document
2007/06/15 Javascript
js的alert样式如何更改如背景颜色
2014/01/22 Javascript
javascript初学者常用技巧
2014/09/02 Javascript
js实现二代身份证号码验证详解
2014/11/20 Javascript
学习JavaScript设计模式(代理模式)
2015/12/03 Javascript
jQuery获取单击节点对象的方法
2016/06/02 Javascript
Javascript对象字面量的理解
2016/06/22 Javascript
vue axios同步请求解决方案
2017/09/29 Javascript
vue-for循环嵌套操作示例
2019/01/28 Javascript
初学node.js中实现删除用户路由
2019/05/27 Javascript
Vue动态创建注册component的实例代码
2019/06/14 Javascript
javascript面向对象三大特征之多态实例详解
2019/07/24 Javascript
Python操作SQLite简明教程
2014/07/10 Python
Django Rest framework之权限的实现示例
2018/12/17 Python
Python设计模式之原型模式实例详解
2019/01/18 Python
Python 批量刷博客园访问量脚本过程解析
2019/08/30 Python
python 连续不等式语法糖实例
2020/04/15 Python
python3发送request请求及查看返回结果实例
2020/04/30 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
2020/06/02 Python
canvas绘制圆角头像的实现方法
2019/01/17 HTML / CSS
CK美国官网:Calvin Klein
2016/08/26 全球购物
大码女装:Ulla Popken
2019/08/06 全球购物
Viking比利时:购买办公用品
2019/10/30 全球购物
初中三年学生的学习自我评价
2013/11/13 职场文书
关于迟到的检讨书
2014/01/26 职场文书
2014优秀党员事迹材料
2014/08/14 职场文书
机关作风建设自查报告
2014/10/22 职场文书
药店营业员岗位职责
2015/04/14 职场文书