原生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 相关文章推荐
简单的无缝滚动程序-仅几行代码
May 08 Javascript
jquery图片播放浏览插件prettyPhoto使用详解
Dec 19 Javascript
解决bootstrap中modal遇到Esc键无法关闭页面
Mar 09 Javascript
js纯数字逐一停止显示效果的实现代码
Mar 16 Javascript
Adapter适配器模式在JavaScript设计模式编程中的运用分析
May 18 Javascript
javascript cookie用法基础教程(概念,设置,读取及删除)
Sep 20 Javascript
5种JavaScript脚本加载的方式
Jan 16 Javascript
Three.js基础学习之场景对象
Sep 27 Javascript
javascript 通过键名获取键盘的keyCode方法
Dec 31 Javascript
js+canvas实现滑动拼图验证码功能
Mar 26 Javascript
简单的三步vuex入门
May 20 Javascript
layui获取多选框中的值方法
Aug 15 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生成xml简单实例代码
2009/12/16 PHP
学习php设计模式 php实现原型模式(prototype)
2015/12/07 PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
2015/12/14 PHP
php用xpath解析html的代码实例讲解
2019/02/14 PHP
Laravel 添加多语言提示信息的方法
2019/09/29 PHP
基于laravel-admin 后台 列表标签背景的使用方法
2019/10/03 PHP
JS读取cookies信息(记录用户名)
2012/01/10 Javascript
图片上传判断及预览脚本的效果实例
2013/08/07 Javascript
js调试系列 源码定位与调试[基础篇]
2014/06/18 Javascript
jquery中页面Ajax方法$.load的功能使用介绍
2014/10/20 Javascript
原生JavaScript实现动态省市县三级联动下拉框菜单实例代码
2016/02/03 Javascript
深入理解vue.js双向绑定的实现原理
2016/12/05 Javascript
Javascript实现数组中的元素上下移动
2017/04/28 Javascript
Angular中的$watch方法详解
2017/09/18 Javascript
Vue源码学习之初始化模块init.js解析
2017/11/02 Javascript
详解vue-router传参的两种方式
2018/09/10 Javascript
微信小程序外卖选购页实现切换分类与数量加减功能案例
2019/01/15 Javascript
jQuery实现推拉门效果
2020/10/19 jQuery
uniapp微信小程序实现一个页面多个倒计时
2020/11/01 Javascript
[01:14]英雄,所敬略同——2018完美盛典宣传视频4K
2018/12/05 DOTA
python获取android设备的GPS信息脚本分享
2015/03/06 Python
使用Python生成url短链接的方法
2015/05/04 Python
python利用dir函数查看类中所有成员函数示例代码
2017/09/08 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
2019/02/20 Python
对numpy下的轴交换transpose和swapaxes的示例解读
2019/06/26 Python
Python3爬虫中pyspider的安装步骤
2020/07/29 Python
无畏的旅行:Intrepid Travel
2017/12/20 全球购物
Weblogic和WebSphere不同特点
2012/05/09 面试题
元旦联欢会感言
2014/03/04 职场文书
五四青年节演讲稿
2014/05/26 职场文书
班子成员四风问题自我剖析材料
2014/09/29 职场文书
群众路线教育实践活动实施方案
2014/10/31 职场文书
民事二审代理词
2015/05/25 职场文书
致我们终将逝去的青春观后感
2015/06/10 职场文书
2015年物业公司保洁工作总结
2015/10/22 职场文书
Python基础之Socket通信原理
2021/04/22 Python