原生js实现焦点轮播图效果
网络编程 2021-07-04 19:20www.168986.cn编程入门
本文主要分享了原生js实现焦点轮播图效果的示例代码,并解析了实例中的注意点。具有一定的参考价值,狼蚁网站SEO优化跟着长沙网络推广一起来看下吧
原生js焦点轮播图主要注意这几点
1、前后按钮实现切换,注意辅助图
2、中间的button随着前后按钮对应切换,按button也能跳转到相应的index
3、间隔调用与无限轮播。
4、注意在动画时要停止按钮,或者说上一个动画完毕下一个动画才能执行
5、在切换图片的时候,底部的Button动画效果,是从底部开始往上升的,要用到transform:scale()和transform-origin:0 100%两个转换属性,代码如下
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <meta name="viewpoint" content="width=device-width,initial-scale=1,user-scalable="no"> <title>20170101</title> <style type="text/css"> a{text-decoration:none;color:#3DBBF5;} .wrapper{width:750px;height:350px;background:#001032;margin:20px auto;text-align:center;box-shadow:0 0 12px 2px hsla(0,20%,30%,0.5);padding:10px 15px;position:relative;} .effect{position:relative;cursor:pointer;} .effect:hover{color:#02a0e9;} .effect:before{width:100%;display:inline-block !important;position:absolute;height:1px;background:#02a0e9;transition:all 0.4s ease-in-out;-webkit-transition:all 0.4s ease-in-out;-moz-transition:all 0.4s ease-in-out;transform:scale(0,1);content:'';bottom:-5px;left:0;} .effect:hover:before{transform:scale(1);-webkit-transform:scale(1);} #lunBo{margin-:20px;overflow:hidden;height:300px;width:750px;position:relative;} #list{position:absolute;z-index:22;height:300px;width:5250px;} #list img{float:left;} #buttons { position: absolute; height: 20px; width: 150px; z-index: 99; bottom: 20px; left: 40%;} span { cursor: pointer; float: left; width: 10px; height: 5px; background: #333; margin-right: 10px;} .on { background: yellow;transition:all 0.4s ease-in-out;-webkit-transition:all 0.4s ease-in-out;-moz-transition:all 0.4s ease-in-out;transform:scale(1,4);-ms-transform:scale(1,4);-moz-transform:scale(1,4);-webkit-transform:scale(1,4);transform-origin:0% 0%;-webkit-transform-origin:0% 100%;-moz-transform-origin:0% 100%;} .arrow { cursor: pointer; display: none; line-height: 39px; text-align: center; font-size: 36px; font-weight: bold; width: 40px; height: 100px; line-height:100px;position: absolute; z-index: 92; : 30%; background-color: RGBA(0,0,0,.3); color: #fff;} .arrow:hover { background-color: RGBA(0,0,0,.7);} #lunBo:hover .arrow { display: block;} #prev { left: 0px;} #next { right: 0px;} </style> </head> <body> <div class="wrapper"> <a class="effect" href="#">2016完了,2017来了</a> <div id="lunBo"> <div id="list" style="left:-750px;"> <img src="http://cdn.attach.qdfuns./notes/pics/201701/03/175856saeagzgsnwal15n5.jpg" alt=""/> <img src="http://cdn.attach.qdfuns./notes/pics/201701/02/235009drzwcaxem2wfgmdc.jpg" alt=""/> <img src="http://cdn.attach.qdfuns./notes/pics/201701/03/175856m1bhxxx1d8jfnblb.jpg" alt=""/> <img src="http://cdn.attach.qdfuns./notes/pics/201701/03/175856z48mfrrr8u064rf6.jpg" alt=""/> <img src="http://cdn.attach.qdfuns./notes/pics/201701/03/175856e95yze236lvq7y2a.jpg" alt=""/> <img src="http://cdn.attach.qdfuns./notes/pics/201701/03/175856saeagzgsnwal15n5.jpg" alt=""/> <img src="http://cdn.attach.qdfuns./notes/pics/201701/02/235009drzwcaxem2wfgmdc.jpg" alt=""/> </div> <div id="buttons"> <span index="1" class="on"></span> <span index="2"></span> <span index="3"></span> <span index="4"></span> <span index="5"></span> </div> <a href="javascript:;" id="prev" class="arrow"><</a> <a href="javascript:;" id="next" class="arrow">></a> </div> </div> <script> window.onload = function(){ var lunBo = document.getElementById('lunBo'); var list = document.getElementById('list'); var buttons = document.getElementById('buttons').getElementsByTagName('span'); //console.log(buttons); var prev = document.getElementById('prev'); var next = document.getElementById('next'); var index = 1; var animated = false; var interval = 3000; var timer; //显示按钮的索引 function showButton(){ for(var i = 0 ; i < buttons.length ; i++){ if( buttons[i].className == 'on' ){ buttons[i].className = ''; break; }; }; buttons[index - 1].className='on'; }; function play(){ timer = setTimeout(function () { next.onclick(); play(); }, interval); }; function s(){ clearTimeout(timer); }; //向前按钮 next.onclick = function () { if (animated) { return; } if (index == 5) { index = 1; } else { index += 1; } animate(-750); showButton(); }; prev.onclick = function () { if (animated) { return; } if (index == 1) { index = 5; } else { index -= 1; } animate(750); showButton(); }; //parseInt()转换为纯数值 function animate(offset){ animated = true; var newLeft = parseInt(list.style.left) + offset; //目标值 var time = 300; //位移总时间为300 var interval = 10; // var speed = offset/(Math.floor(time/interval)); //每次位移量 function go(){ if( (speed < 0 && parseInt(list.style.left) > newLeft) || ( speed > 0 && parseInt(list.style.left) < newLeft) ){ list.style.left = parseInt(list.style.left) + speed + 'px'; setTimeout(go,interval); }else{ animated = false; list.style.left = newLeft+ 'px'; //现在的位移 if( newLeft > -750){ //假的辅助图 list.style.left = -3750 + 'px'; } if( newLeft < -3750){ list.style.left = -750 + 'px'; } } }; go(); }; //小按钮 for(var i=0;i < buttons.length;i++){ buttons[i].onclick = function(){ if(this.className == 'on'){ return; }; var myIndex = parseInt(this.getAttribute('index')); var offset = -750 (myIndex - index); animate(offset); index = myIndex; showButton(); } } lunBo.onmouseout = play; lunBo.onmouseover = s; play(); } </script> </body> </html>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望多多支持狼蚁SEO!
上一篇:JS百度地图搜索悬浮窗功能
下一篇:详解能在多种前端框架下使用的表格控件
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程