原生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 相关文章推荐
jquery 插件开发方法小结
Oct 23 Javascript
JavaScript获取路径设计源码
May 22 Javascript
Node.js中安全调用系统命令的方法(避免注入安全漏洞)
Dec 05 Javascript
jQuery不兼容input的change事件问题解决过程
Dec 05 Javascript
JS动态创建DOM元素的方法
Jun 09 Javascript
JavaScript中的cacheStorage使用详解
Jul 29 Javascript
使用get方式提交表单在地址栏里面不显示提交信息
Feb 21 Javascript
angular.fromJson与toJson方法用法示例
May 17 Javascript
Mongoose实现虚拟字段查询的方法详解
Aug 15 Javascript
WebStorm ES6 语法支持设置&amp;babel使用及自动编译(详解)
Sep 08 Javascript
JS基于正则表达式实现的密码强度验证功能示例
Sep 21 Javascript
实现一个完整的Node.js RESTful API的示例
Sep 29 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数据示例
2016/07/11 PHP
PHP进制转换实例分析(2,8,16,36,64进制至10进制相互转换)
2017/02/04 PHP
PHP实现批量清空删除指定文件夹所有内容的方法
2017/05/30 PHP
PHP实现使用DOM将XML数据存入数组的方法示例
2017/09/27 PHP
Laravel 创建可以传递参数 Console服务的例子
2019/10/14 PHP
fix-ie5.js扩展在IE5下不能使用的几个方法
2007/08/20 Javascript
放弃用你的InnerHTML来输出HTML吧 jQuery Tmpl不详细讲解
2013/04/20 Javascript
Jquery实现三层遍历删除功能代码
2013/04/23 Javascript
JS 加入收藏夹的代码(主流浏览器通用)
2013/05/13 Javascript
Eclipse下jQuery文件报错出现错误提示红叉
2014/01/13 Javascript
jQuery弹出层插件popShow(改进版)用法示例
2017/01/23 Javascript
js中创建对象的几种方式
2017/02/05 Javascript
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
2017/07/09 Javascript
Angular2整合其他插件的方法
2018/01/20 Javascript
js中Array对象的常用遍历方法详解
2019/01/17 Javascript
微信小程序实现下拉刷新动画
2019/06/21 Javascript
vue-cli脚手架引入弹出层layer插件的几种方法
2019/06/24 Javascript
Vue的编码技巧与规范使用详解
2019/08/28 Javascript
解决antd日期选择组件,添加value就无法点击下一年和下一月问题
2020/10/29 Javascript
[01:04:05]VG vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python监控网站运行异常并发送邮件的方法
2015/03/13 Python
TensorFlow实现非线性支持向量机的实现方法
2018/04/28 Python
Django model update的多种用法介绍
2020/03/28 Python
简单了解python 生成器 列表推导式 生成器表达式
2019/08/22 Python
pycharm进入时每次都是insert模式的解决方式
2021/02/05 Python
美术师范毕业生自荐信
2013/11/16 职场文书
蜜蜂引路教学反思
2014/02/04 职场文书
一月红领巾广播稿
2014/02/11 职场文书
班级道德讲堂实施方案
2014/02/24 职场文书
公司授权委托书范本
2014/04/03 职场文书
设备收款委托书范本
2014/10/02 职场文书
大学迎新生标语
2014/10/06 职场文书
2019年幼儿园管理条例范本!
2019/07/17 职场文书
python数字转对应中文的方法总结
2021/08/02 Python
MySQL修炼之联结与集合浅析
2021/10/05 MySQL
详解在SQLPlus中实现上下键翻查历史命令的功能
2022/03/18 SQL Server