原生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 相关文章推荐
利用javascript中的call实现继承
Jan 22 Javascript
无阻塞加载脚本分析[全]
Jan 20 Javascript
基于JQuery模仿苹果桌面的Dock效果(初级版)
Oct 15 Javascript
关于scrollLeft,scrollTop的浏览器兼容性测试
Mar 19 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
Apr 24 Javascript
JS预览图像将本地图片显示到浏览器上
Aug 25 Javascript
Css3制作变形与动画效果
Jul 24 Javascript
学习JavaScript设计模式之观察者模式
Apr 22 Javascript
js 动态添加元素(div、li、img等)及设置属性的方法
Jul 19 Javascript
JQuery.validationEngine表单验证插件(推荐)
Dec 10 Javascript
微信小程序wx.uploadfile 本地文件转base64的实现代码
Jun 28 Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
Oct 20 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
shopex中集成的站长统计功能的代码简单分析
2011/08/11 PHP
PHP小教程之实现链表
2014/06/09 PHP
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
2014/06/12 PHP
PHP Reflection API详解
2015/05/12 PHP
Jquery中children与find之间的区别详细解析
2013/11/29 Javascript
jQuery实现表单提交时判断的方法
2014/12/13 Javascript
javascript手工制作悬浮菜单
2015/02/12 Javascript
对jQuary选择器的全面总结
2016/06/20 Javascript
JavaScript数组方法大全(推荐)
2016/07/05 Javascript
jQuery实现公告新闻自动滚屏效果实例代码
2016/07/14 Javascript
angularjs项目的页面跳转如何实现(5种方法)
2017/05/25 Javascript
js es6系列教程 - 基于new.target属性与es5改造es6的类语法
2017/09/02 Javascript
AngularJS的$location使用方法详解
2017/10/19 Javascript
利用npm 安装删除模块的方法
2018/05/15 Javascript
使用Vue 实现滑动验证码功能
2019/06/27 Javascript
AngularJS动态生成select下拉框的方法实例
2019/11/17 Javascript
利用PHP实现递归删除链表元素的方法示例
2020/10/23 Javascript
[42:32]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第二局
2016/02/27 DOTA
[43:51]2018DOTA2亚洲邀请赛3月30日 小组赛B组 EG VS Secret
2018/03/31 DOTA
Python守护进程(daemon)代码实例
2015/03/06 Python
利用Python的Django框架中的ORM建立查询API
2015/04/20 Python
python如何去除字符串中不想要的字符
2020/07/05 Python
Python爬虫之pandas基本安装与使用方法示例
2018/08/08 Python
django框架使用方法详解
2019/07/18 Python
Python 转换RGB颜色值的示例代码
2019/10/13 Python
使用Python画出小人发射爱心的代码
2019/11/23 Python
Python enumerate函数遍历数据对象组合过程解析
2019/12/11 Python
Python字符串中删除特定字符的方法
2020/01/15 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
2020/01/19 Python
综合办公室个人的自我评价
2013/12/22 职场文书
学校个人对照检查材料
2014/08/26 职场文书
迟到检讨书2000字(精选篇)
2014/10/07 职场文书
交警失职检讨书
2015/01/26 职场文书
搞笑老公保证书
2015/02/26 职场文书
pandas:get_dummies()与pd.factorize()的用法及区别说明
2021/05/21 Python
纯 CSS 自定义多行省略的问题(从原理到实现)
2021/11/11 HTML / CSS