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 相关文章推荐
一款js和css代码压缩工具[附JAVA环境配置方法]
Apr 16 Javascript
JQuery循环滚动图片代码
Dec 08 Javascript
IE6背景图片不缓存问题解决方案及图片使用策略多个方法小结
May 14 Javascript
JavaScript中window.showModalDialog()用法详解
Dec 18 Javascript
jquery判断checkbox是否选中及改变checkbox状态的实现方法
May 26 Javascript
详解VueJs异步动态加载块
Mar 09 Javascript
简单实现js鼠标跟随效果
Aug 02 Javascript
浅谈angular.copy() 深拷贝
Sep 14 Javascript
vue elementUI使用tabs与导航栏联动
Jun 21 Javascript
js prototype深入理解及应用实例分析
Nov 25 Javascript
JS正则表达式验证端口范围(0-65535)
Jan 06 Javascript
vue实现同时设置多个倒计时
May 20 Vue.js
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
世界第一个无线广播电台 KDKA
2021/03/01 无线电
php microtime获取浮点的时间戳
2010/02/21 PHP
php实现水仙花数示例分享
2014/04/03 PHP
php修改文件上传限制方法汇总
2015/04/07 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
2015/10/22 PHP
ThinkPHP中session函数详解
2016/09/14 PHP
php简单统计中文个数的方法
2016/09/30 PHP
Yii2框架制作RESTful风格的API快速入门教程
2016/11/08 PHP
Javascript与vbscript数据共享
2007/01/09 Javascript
基于逻辑运算的简单权限系统(实现) JS 版
2007/03/24 Javascript
JavaScript实现的一个计算数字步数的算法分享
2014/12/06 Javascript
angularjs基础教程
2014/12/25 Javascript
JavaScript Window浏览器对象模型方法与属性汇总
2015/04/20 Javascript
微信小程序模板之分页滑动栏
2017/02/10 Javascript
Avalonjs双向数据绑定与监听的实例代码
2017/06/23 Javascript
解决ionic和angular上拉加载的问题
2017/08/03 Javascript
微信小程序实现列表下拉刷新上拉加载
2020/07/29 Javascript
详解vue beforeRouteEnter 异步获取数据给实例问题
2019/08/09 Javascript
浅析 Vue 3.0 的组装式 API(一)
2020/08/31 Javascript
在Python的Django框架中包装视图函数
2015/07/20 Python
python 类详解及简单实例
2017/03/24 Python
Python中index()和seek()的用法(详解)
2017/04/27 Python
详解Python给照片换底色(蓝底换红底)
2019/03/22 Python
python实现倒计时小工具
2019/07/29 Python
kafka监控获取指定topic的消息总量示例
2019/12/23 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
2020/04/16 Python
宝拉珍选澳大利亚官方购物网站:Paula’s Choice澳大利亚
2016/09/13 全球购物
Joules美国官网:出色的英国风格
2017/10/30 全球购物
室内设计专业自荐信
2014/05/31 职场文书
2014年中学生检讨书大全
2014/10/09 职场文书
作息时间调整通知
2015/04/22 职场文书
驳回起诉民事裁定书
2015/05/19 职场文书
母亲节感言
2015/08/03 职场文书
职工的安全责任书范文!
2019/07/02 职场文书
五年级作文之学校的四季
2019/12/05 职场文书
详解Java实践之建造者模式
2021/06/18 Java/Android