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 相关文章推荐
商城常用滚动的焦点图效果代码简单实用
Mar 28 Javascript
jquery获取当前日期的方法
Jan 14 Javascript
在JavaScript中操作时间之getYear()方法的使用教程
Jun 11 Javascript
JS 组件系列之BootstrapTable的treegrid功能
Jun 16 Javascript
浅谈实现vue2.0响应式的基本思路
Feb 13 Javascript
用vue2.0实现点击选中active其他选项互斥的效果
Apr 12 Javascript
浅谈Node.js 沙箱环境
May 15 Javascript
vue上传图片到oss的方法示例(图片带有删除功能)
Sep 27 Javascript
vue+element-ui实现表格编辑的三种实现方式
Oct 31 Javascript
JavaScript中变量提升机制示例详解
Dec 27 Javascript
通过js实现压缩图片上传功能
Feb 25 Javascript
JavaScript 函数用法详解【函数定义、参数、绑定、作用域、闭包等】
May 12 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日历程序
2006/12/06 PHP
PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
2011/12/05 PHP
ThinkPHP采用原生query实现关联查询left join实例
2014/12/02 PHP
php和editplus正则表达式去除空白行
2015/04/17 PHP
PHP简单读取xml文件的方法示例
2017/04/20 PHP
js面向对象 多种创建对象方法小结
2012/05/21 Javascript
js判断鼠标同时离开两个div的思路及代码
2013/05/31 Javascript
JS实现静止元素自动移动示例
2014/04/14 Javascript
javascript中attribute和property的区别详解
2014/06/05 Javascript
js实现鼠标悬停图片上时滚动文字说明的方法
2015/02/17 Javascript
Jquery常用的方法汇总
2015/09/01 Javascript
jQuery插件jquery-barcode实现条码打印的方法
2015/11/25 Javascript
XML、HTML、CSS与JS的区别整理
2016/02/18 Javascript
原生JS+CSS实现炫酷重力模拟弹跳系统的登录页面
2017/11/01 Javascript
vue中本地静态图片路径写法
2018/03/06 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
2018/08/10 Javascript
React降级配置及Ant Design配置详解
2018/12/27 Javascript
Vue 样式绑定的实现方法
2019/01/15 Javascript
ES6 Promise对象的含义和基本用法分析
2019/06/14 Javascript
JS sort排序详细使用方法示例解析
2020/09/27 Javascript
JavaScript快速调试的两个技巧
2020/11/04 Javascript
JS实现百度搜索框
2021/02/25 Javascript
[41:52]2018DOTA2亚洲邀请赛3月29日小组赛B组Effect VS Secret
2018/03/30 DOTA
python使用matplotlib库生成随机漫步图
2018/08/27 Python
Python玩转PDF的各种骚操作
2019/05/06 Python
Python绘图Matplotlib之坐标轴及刻度总结
2019/06/28 Python
CSS3标注引用的出处和来源的方法
2020/02/25 HTML / CSS
牵手50台湾:专为黄金岁月的单身人士而设的交友网站
2021/02/18 全球购物
机械工程师求职自我评价
2013/09/23 职场文书
仓库管理专业个人自我评价范文
2013/11/11 职场文书
《台湾的蝴蝶谷》教学反思
2014/02/20 职场文书
高三霸气励志标语
2014/06/24 职场文书
反洗钱宣传活动总结
2014/08/26 职场文书
竞选大学学委演讲稿
2014/09/13 职场文书
怎样写离婚协议书
2015/01/26 职场文书
python学习之panda数据分析核心支持库
2021/05/07 Python