原生js模仿小米轮播图
来源:互联网 发布:淘宝待发货订单生成器 编辑:程序博客网 时间:2024/05/17 21:39
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title></head><body><style> * { margin: 0; padding: 0; list-style: none; } #banner { width: 992px; height: 420px; margin: 100px auto; position: relative; } #main { width: 992px; height: 420px; overflow: hidden; } #con { width: 7000px; height: 420px; overflow: hidden; } #con img { width: 992px; height: 420px; float: left; cursor: pointer; } #banner ol { position: absolute; bottom: 10px; right: 10px; } #banner ol li { height: 20px; width: 30px; cursor: pointer; background: rgba(0, 0, 0, 0.5); border: 1px solid #fff; line-height: 20px; text-align: center; margin-left: 10px; float: left; } #banner #left, #banner #right { width: 41px; height: 69px; position: absolute; background: url("img/arr.png") no-repeat -84px 0; top: 50%; margin-top: -35px; } #banner #right { right: 0; background-position: -125px 0; } #banner #left:hover { background-position: 0 0; } #banner #right:hover { background-position: -42px 0; } #num .show { border-color: #000; background: rgba(255, 255, 255, 0.5); }</style><div id="banner"> <div id="main"> <div id="con"> <img src="img/1.jpg" alt=""/> <img src="img/2.jpg" alt=""/> <img src="img/3.jpg" alt=""/> <img src="img/4.jpg" alt=""/> </div> </div> <ol id="num"> <li class="show">1</li> <li>2</li> <li>3</li> <li>4</li> </ol> <a href="javascript:;" id="left"></a> <a href="javascript:;" id="right"></a></div><script src="../tween.js"></script><script> var con = document.getElementById('con'); //得到图片的父级 var imgs = con.getElementsByTagName('img'); //根据图片的父级得到图片 var num = document.getElementById('num'); var lis = num.getElementsByTagName('li'); var left = document.getElementById('left'); var right = document.getElementById('right'); var picNum = 1,num = 0;//picNum保存当前要滚动的图片的下标值,num表示下面的数字 var timer1 = null, timer2 = null; // timer1用来控制换图片的间隔,timer2用来控制图片滚动 /*新建图片节点插入到图片块中*/ var newImg1 = document.createElement('img'); newImg1.src = imgs[0].src; var newImg2 = document.createElement('img'); newImg2.src = imgs[imgs.length-1].src; con.appendChild(newImg1); con.insertBefore(newImg2,imgs[0]); main.scrollLeft=imgs[0].clientWidth;//初始化滚动条的位置在一张图片宽度位置 function move() { var start = main.scrollLeft; //获取滚动开始位置 var end = imgs[0].clientWidth * picNum; //获取滚动结束位置 var change = end - start; //求得滚动距离的差值 var minStep = 0; //设置最小步数 var maxStep = 31; //设置最大步数 var aveSpace = change / maxStep; //求得平均每步的距离 clearInterval(timer2); timer2 = setInterval(function () { minStep++; if (minStep >= maxStep) { clearInterval(timer2); } start += aveSpace; main.scrollLeft = start; // main.scrollLeft = Tween.Quint.easeIn(minStep,start,change,maxStep); //main.scrollLeft = Tween.Quart.easeIn(minStep,start,change,maxStep); //main.scrollLeft = Tween.Sine.easeIn(minStep,start,change,maxStep); //main.scrollLeft = Tween.Bounce.easeIn(minStep,start,change,maxStep); }, 10); for (var i = 0; i < lis.length; ++i) { lis[i].className = ''; } lis[num].className = 'show'; } function autoMove() { clearInterval(timer1); //在建立一个计时器时要先清除一个 timer1 = setInterval(function () { picNum++; if (picNum >= imgs.length) { picNum = 2; main.scrollLeft=imgs[0].clientWidth; } num++; if(num>=lis.length){ num=0; } move(); }, 2000); } autoMove(); //刚打开后自动播放 //点击右按钮 right.onclick = function () { picNum++; if (picNum >= imgs.length) { picNum = 2; main.scrollLeft=imgs[0].clientWidth; } num++; if(num>=lis.length){ num=0; } move(); autoMove(); } //点击左按钮 left.onclick = function () { picNum--; if (picNum < 0) { picNum = imgs.length - 3; main.scrollLeft=imgs[0].clientWidth*(picNum+1); } num--; if (num < 0) { num = lis.length - 1; } move(); autoMove(); } //当鼠标移动到数字上 for (var i = 0; i < lis.length; ++i) { lis[i].index = i; lis[i].onmouseenter = function () { num = this.index; picNum = num+1; move(); autoMove(); } } for(var i = 0 ; i < imgs.length ; ++i){ imgs[i].onmouseenter = function () { clearInterval(timer1); clearInterval(timer2); } imgs[i].onmouseleave = function () { autoMove(); } }</script></body></html>
图片没贴上
0 0
- 原生js模仿小米轮播图
- 使用vue.js模仿小米官网的作品
- 原生js实现对Ajax的封装(模仿jquery)
- 模仿小米时钟
- 模仿小米计时器
- 原生JS实现轮播图
- 原生JS轮播图
- 原生js轮播图
- 原生js轮播图
- Js原生实现轮播图
- JS原生轮播图代码
- 原生js轮播图
- 原生js实现轮播图
- 原生js轮播图
- 原生JS轮播图
- 原生JS轮播图
- 原生JS实现轮播图
- JS原生轮播图实现
- 1、mui app在线更新
- Java注解的介绍
- Spring dbcp配置
- 深入CloudFoundry一周年(原版)
- 主外键双表配置
- 原生js模仿小米轮播图
- bootstrap 二级导航
- OPC经验谈
- 《从零开始学Swift》学习笔记(Day 3)——Swift 2.0之后增加的关键字
- 《STL源码剖析》阅读笔记
- 《我的RobotFramework书》1-3 测试模板, Test Template
- 多线程2
- 一点struts2(1)
- Unity3D项目融合到Android项目中