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实现youku的视频代码自适应宽度
May 25 Javascript
checkbox批量选中,获取选中项的值的简单实例
Jun 28 Javascript
JavaScript遍历Json串浏览器输出的结果不统一问题
Nov 03 Javascript
bootstrap datetimepicker控件位置异常的解决方法
Nov 23 Javascript
JavaScript引用类型Date常见用法实例分析
Aug 08 Javascript
JS阻止事件冒泡的方法详解
Aug 26 Javascript
为什么Vue3.0使用Proxy实现数据监听(defineProperty表示不背这个锅)
Oct 14 Javascript
CountUp.js数字滚动插件使用方法详解
Oct 17 Javascript
微信小程序canvas截取任意形状的实现代码
Jan 13 Javascript
vue proxy 的优势与使用场景实现
Jun 15 Javascript
在elementui中Notification组件添加点击事件实例
Nov 11 Javascript
swiperjs实现导航与tab页的联动
Dec 13 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/04 星际争霸
php实现压缩合并js的方法【附demo源码下载】
2016/09/22 PHP
PHP抽象类基本用法示例
2018/12/28 PHP
Javascript学习笔记8 用JSON做原型
2010/01/11 Javascript
NodeJS与Mysql的交互示例代码
2013/08/18 NodeJs
JQuery 控制内容长度超出规定长度显示省略号
2014/05/23 Javascript
js实现网页标题栏闪烁提示效果实例分析
2014/11/20 Javascript
JS获取图片高度宽度的方法分享
2015/04/17 Javascript
jQuery下拉美化搜索表单效果代码分享
2015/08/25 Javascript
使用Javascript写的2048小游戏
2015/11/25 Javascript
JS折半插入排序算法实例
2015/12/02 Javascript
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
全面解析多种Bootstrap图片轮播效果
2016/05/27 Javascript
jQuery验证表单格式的使用方法
2017/01/10 Javascript
jQuery控制元素隐藏和显示
2017/03/03 Javascript
Javascript 编码约定(编码规范)
2018/03/11 Javascript
vue.extend实现alert模态框弹窗组件
2018/04/28 Javascript
JS如何获取地址栏的参数实例讲解
2018/10/06 Javascript
Python单例模式实例分析
2015/01/14 Python
用python 制作图片转pdf工具
2015/01/30 Python
对python csv模块配置分隔符和引用符详解
2018/12/12 Python
Python 如何对文件目录操作
2020/07/10 Python
Python如何将装饰器定义为类
2020/07/30 Python
细说CSS3中box属性中的overflow-x属性和overflow-y属性值的效果
2014/07/21 HTML / CSS
Keds官方网站:购买帆布运动鞋和经典皮鞋
2016/11/12 全球购物
英国著名的美容护肤和护发产品购物网站:Lookfantastic
2020/11/23 全球购物
什么是跨站脚本攻击
2014/12/11 面试题
thinkphp5 redis缓存新增方法实例讲解
2021/03/24 PHP
仓库规划计划书
2014/04/28 职场文书
教师节倡议书
2014/08/30 职场文书
乡镇领导班子四风对照检查材料
2014/09/27 职场文书
辞职信模板(中英文版)
2015/02/27 职场文书
论文答辩开场白大全
2015/05/27 职场文书
个人欠条范本
2015/07/03 职场文书
2015少先队大队辅导员工作总结
2015/07/24 职场文书
sql查询结果列拼接成逗号分隔的字符串方法
2021/05/25 SQL Server