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 相关文章推荐
超棒的javascript页面顶部卷动广告效果
Dec 01 Javascript
jquery each()源代码
Feb 14 Javascript
在javascript中对于DOM的加强
Apr 11 Javascript
js中的referrer返回上一页使用介绍
Sep 26 Javascript
利用js实现在浏览器状态栏显示访问者在本页停留的时间
Dec 29 Javascript
AngularJS初始化静态模板详解
Jan 14 Javascript
jQuery组件easyui基本布局实现代码
Aug 25 Javascript
JavaScript 身份证号有效验证详解及实例代码
Oct 20 Javascript
Vue结合Video.js播放m3u8视频流的方法示例
May 04 Javascript
node之本地服务器图片上传的方法示例
Mar 26 Javascript
express框架下使用session的方法
Jul 31 Javascript
js实现随机抽奖
Mar 19 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
盘点被央视点名过的日本动画电影 一部比一部强
2020/03/08 日漫
PHP Zip解压 文件在线解压缩的函数代码
2010/05/26 PHP
实现获取http内容的php函数分享
2014/02/16 PHP
Git命令之分支详解
2021/03/02 PHP
JavaScript实现动态增加文件域表单
2009/02/12 Javascript
javascript 限制输入脚本大全
2009/11/03 Javascript
网页实时显示服务器时间和javscript自运行时钟
2014/06/09 Javascript
js中一维数组和二位数组中的几个问题示例说明
2014/07/17 Javascript
javascript中setTimeout和setInterval的unref()和ref()用法示例
2014/11/26 Javascript
JavaScript实现强制重定向至HTTPS页面
2015/06/10 Javascript
在AngularJS应用中实现一些动画效果的代码
2015/06/18 Javascript
jQuery结合CSS制作动态的下拉菜单
2015/10/27 Javascript
js阻止浏览器默认行为的简单实例
2016/05/15 Javascript
修改js confirm alert 提示框文字的简单实例
2016/06/10 Javascript
Javascript数组循环遍历之forEach详解
2016/11/07 Javascript
vue事件修饰符和按键修饰符用法总结
2017/07/25 Javascript
DVA框架统一处理所有页面的loading状态
2017/08/25 Javascript
vue中v-model的应用及使用详解
2018/06/27 Javascript
简单介绍Python中用于求最小值的min()方法
2015/05/15 Python
Python使用matplotlib填充图形指定区域代码示例
2018/01/16 Python
Python基于socket模块实现UDP通信功能示例
2018/04/10 Python
Python爬虫包BeautifulSoup实例(三)
2018/06/17 Python
Python从文件中读取数据的方法讲解
2019/02/14 Python
Python爬取视频(其实是一篇福利)过程解析
2019/08/01 Python
logging level级别介绍
2020/02/21 Python
K最近邻算法(KNN)---sklearn+python实现方式
2020/02/24 Python
四查四看剖析材料
2014/02/14 职场文书
法制宣传口号
2014/06/16 职场文书
客房部经理岗位职责
2015/02/02 职场文书
会计岗位职责
2015/02/03 职场文书
首席执行官观后感
2015/06/03 职场文书
教师培训学习心得体会
2016/01/21 职场文书
图片批量处理 - 尺寸、格式、水印等
2022/03/07 杂记
css布局巧妙技巧之css三角示例的运用
2022/03/16 HTML / CSS
JavaScript实现外溢动态爱心的效果的示例代码
2022/03/21 Javascript
MYSQL如何查看操作日志详解
2022/05/30 MySQL