原生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 继承的实现
Jul 09 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
May 17 Javascript
javascript实现树形菜单的方法
Jul 17 Javascript
网页从弹窗页面单选框传值至父页面代码分享
Sep 29 Javascript
轻松实现jquery手风琴效果
Jan 14 Javascript
Actionscript与javascript交互实例程序(修改)
Sep 22 Javascript
JavaScript之WebSocket技术详解
Nov 18 Javascript
Ajax验证用户名或昵称是否已被注册
Apr 05 Javascript
详解A标签中href=&quot;&quot;的几种用法
Aug 20 Javascript
vue.js做一个简单的编辑菜谱功能
May 08 Javascript
JS遍历JSON数组及获取JSON数组长度操作示例【测试可用】
Dec 12 Javascript
Node.js动手撸一个静态资源服务器的方法
Mar 09 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 出现乱码和Sessions验证问题的解决方法!
2008/12/06 PHP
ThinkPHP页面跳转success与error方法概述
2014/06/25 PHP
Yii快速入门经典教程
2015/12/28 PHP
PHP自动识别当前使用移动终端
2018/05/21 PHP
实例讲解PHP表单
2020/06/10 PHP
Prototype使用指南之selector.js说明
2008/10/26 Javascript
JavaScript 权威指南(第四版) 读书笔记
2009/08/11 Javascript
jQuery $.get 的妙用 访问本地文本文件
2012/07/12 Javascript
javascript中createElement的两种创建方式
2015/05/14 Javascript
基于jquery实现ajax无刷新评论
2020/08/19 Javascript
jquery实现焦点轮播效果
2017/02/23 Javascript
Linux CentOS系统下安装node.js与express的方法
2017/04/01 Javascript
深入研究React中setState源码
2017/11/17 Javascript
微信小程序自定义导航栏实例代码
2019/04/05 Javascript
在Vue mounted方法中使用data变量详解
2019/11/05 Javascript
Python中条件选择和循环语句使用方法介绍
2013/03/13 Python
Python魔术方法详解
2015/02/14 Python
python处理二进制数据的方法
2015/06/03 Python
详解python之多进程和进程池(Processing库)
2017/06/09 Python
Python对象类型及其运算方法(详解)
2017/07/05 Python
深入学习Python中的上下文管理器与else块
2017/08/27 Python
Python selenium抓取微博内容的示例代码
2018/05/17 Python
Python Django框架实现应用添加logging日志操作示例
2019/05/17 Python
浅谈Python中range与Numpy中arange的比较
2020/03/11 Python
python 写一个性能测试工具(一)
2020/10/24 Python
HTML5打开本地app应用的方法
2016/03/31 HTML / CSS
HTML5 canvas标签实现刮刮卡效果
2015/04/24 HTML / CSS
Regatta官网:英国最受欢迎的户外服装和鞋类品牌
2019/05/01 全球购物
潘多拉珠宝美国官方网站:Pandora US
2020/06/18 全球购物
补充协议书范本
2014/04/23 职场文书
个人工作违纪检讨书
2015/05/05 职场文书
幼儿园百日安全活动总结
2015/05/07 职场文书
学生病假条范文
2015/08/17 职场文书
2016教师学习教育法心得体会
2016/01/19 职场文书
Springboot如何同时装配两个相同类型数据库
2021/11/17 Java/Android
Linux7.6二进制安装Mysql8.0.27详细操作步骤
2021/11/27 MySQL