原生JS实现层叠轮播图


Posted in Javascript onMay 17, 2017

又是轮播?没错,换个样式玩轮播。

原生JS实现层叠轮播图

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>wtf</title>
</head>
<body>
 <div class="container">
 <div class="box">
 <img class="front" src="img/A.jpg" alt="PIC">
 <img class="back" src="img/B.jpg" alt="PIC">
 <img class="active" src="img/C.jpg" alt="PIC">
 <div class="btns">
 <span class="btn"><</span>
 <span class="btn">></span>
 </div>
 </div>
 </div>

</body>
</html>

CSS:

<style>
 .box {width: 1200px; height: 300px; transform-style: perserve-3d; margin: 50px auto; position: relative;}
 .box img{width:600px; position: absolute; top: 60px; transition:all .3s linear;}
 
 .box:hover .btn{opacity: 1;}

 .front {left: 0px;}
 .back {left: 600px;} 
 .active {left: 300px; transform: scale(1.5); z-index: 10;}
 
 .btns .btn {width: 60px; height: 60px; display: block; position: absolute; background-color: rgba(0,0,0,.5); font-size: 50px; font-family: "微软雅黑"; color:rgba(255,255,255,.5); line-height: 55px; text-align: center; cursor: pointer; z-index: 100; opacity: 0; transition:opacity .3s linear;} 
 .btns .btn:first-child {top: 125px;}
 .btns .btn:last-child {top: 125px; right: 0px;}
 </style>

JS:

<script>
 onload = function(){
 var btns = document.getElementsByClassName('btn'),
  imgs = document.getElementsByClassName('box')[0].getElementsByTagName('img');

 var index = 2,
  front = 0,
  back = 0,
  offset = false,
  timer = setInterval(timer,5000);
  


 for(var i=0;i<btns.length;i++){
 (function(i){
  btns[i].onclick = function(){click(i)};
 })(i);

 btns[i].onmouseover = function(){
  offset = true;
 }
 btns[i].onmouseout = function(){
  offset = false;
 }
 }

 for(var i=0;i<imgs.length;i++){
 imgs[i].onmouseover = function(){
  offset = true;
 }
 imgs[i].onmouseout = function(){
  offset = false;
 }
 }

 function timer(){
 console.log(offset)
 if(offset){
  return;
 }
 else{
  click(1)
 }
 }

 function click(x){
 imgs[index].setAttribute('class','');
 if(x === 0){
  if(--index < 0){
  index = --imgs.length;
  }
  front = back = index;
  if(++front > --imgs.length){front = 0}
  if(--back < 0){back = --imgs.length}
  imgs[front].style.zIndex = '1';
  imgs[back].style.zIndex = '0';
 }
 else{ 
  if(++index > --imgs.length){
  index = 0; 
  }
  front = back = index;
  if(++front > --imgs.length){front = 0}
  if(--back < 0){back = --imgs.length}
  imgs[front].style.zIndex = '0';
  imgs[back].style.zIndex = '1';
 }
 imgs[index].style.zIndex = '10';
 imgs[front].setAttribute('class','front')
 imgs[back].setAttribute('class','back') 
 imgs[index].setAttribute('class','active');
 }
 }
 </script>

精彩专题分享:jQuery图片轮播 JavaScript图片轮播 Bootstrap图片轮播

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS中引用百度地图并将百度地图的logo和信息去掉
Sep 29 Javascript
JQuery教学之性能优化
May 14 Javascript
JS 对象属性相关(检查属性、枚举属性等)
Apr 05 Javascript
JavaScript数组的一些奇葩行为
Jan 25 Javascript
js实现文本上下来回滚动
Feb 03 Javascript
bootstrap-Treeview实现级联勾选
Nov 23 Javascript
Angular5中提取公共组件之radio list的实例代码
Jul 10 Javascript
JavaScript中Array方法你该知道的正确打开方法
Sep 11 Javascript
微信小程序实现底部导航
Nov 05 Javascript
微信小程序配置服务器提示验证token失败的解决方法
Apr 03 Javascript
jQuery实现全选、反选和不选功能的方法详解
Dec 04 jQuery
微信小程序如何获取地址
Dec 24 Javascript
JavaScript手风琴页面制作
May 17 #Javascript
jQuery查找dom的几种方法效率详解
May 17 #jQuery
bootstrap的工具提示实例代码
May 17 #Javascript
js字符串与Unicode编码互相转换
May 17 #Javascript
JavaScript实现省市县三级级联特效
May 16 #Javascript
原生js简单实现放大镜特效
May 16 #Javascript
javascript 中iframe高度自适应(同域)实例详解
May 16 #Javascript
You might like
浅谈php+phpStorm+xdebug配置方法
2015/09/17 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
2015/10/10 PHP
PHP截取IE浏览器并缩小原图的方法
2016/03/04 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
2017/07/03 PHP
浅谈PHP各环境下的伪静态配置
2019/03/13 PHP
Whatever:hover 无需javascript让IE支持丰富伪类
2010/06/29 Javascript
浅谈Javascript面向对象编程
2011/11/15 Javascript
JQuery中根据属性或属性值获得元素(6种情况获取方法)
2013/01/17 Javascript
IE与FF下javascript获取网页及窗口大小的区别详解
2014/01/14 Javascript
js判断当页面无法回退时关闭网页否则就history.go(-1)
2014/08/07 Javascript
angularjs的一些优化小技巧
2014/12/06 Javascript
C#中使用迭代器处理等待任务
2015/07/13 Javascript
jquery衣服颜色选取插件效果代码分享
2015/08/28 Javascript
javascript验证手机号和实现星号(*)代替实例
2016/08/16 Javascript
JavaScript数据结构链表知识详解
2016/11/21 Javascript
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
2016/12/30 NodeJs
JS实现上传图片实时预览功能
2017/05/22 Javascript
vue bootstrap小例子一枚
2017/06/09 Javascript
Vue resource中的GET与POST请求的实例代码
2017/07/21 Javascript
Node.js实现注册邮箱激活功能的方法示例
2018/03/23 Javascript
Webpack4 使用Babel处理ES6语法的方法示例
2019/03/07 Javascript
Python中使用摄像头实现简单的延时摄影技术
2015/03/27 Python
Python实例方法、类方法、静态方法的区别与作用详解
2019/03/25 Python
在python中利用try..except来代替if..else的用法
2019/12/19 Python
Python通过zookeeper实现分布式服务代码解析
2020/07/22 Python
python3.7 openpyxl 在excel单元格中写入数据实例
2020/09/01 Python
python字典与json转换的方法总结
2020/12/28 Python
html5 Canvas画图教程(5)—canvas里画曲线之arc方法
2013/01/09 HTML / CSS
深入剖析HTML5 内联框架iFrame
2016/05/04 HTML / CSS
美国健康和保健平台:healtop
2020/07/02 全球购物
J2EE中的容器都包括哪些
2013/08/21 面试题
员工年终自我评价
2014/09/14 职场文书
2015年保安个人工作总结
2015/04/02 职场文书
刑事法律意见书
2015/06/04 职场文书
课改心得体会范文
2016/01/25 职场文书
导游词之任弼时故居
2020/01/07 职场文书