原生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 二维数组
Nov 26 Javascript
JQuery操作单选按钮以及复选按钮示例
Sep 23 Javascript
用html5 js实现点击一个按钮达到浏览器全屏效果
May 28 Javascript
js判断浏览器类型为ie6时不执行
Jun 15 Javascript
jQuery实现信息提示框(带有圆角框与动画)效果
Aug 07 Javascript
jQuery遮罩层实现方法实例详解(附遮罩层插件)
Dec 08 Javascript
jQuery插件easyUI实现通过JS显示Dialog的方法
Sep 16 Javascript
微信小程序之绑定点击事件实例详解
Jul 07 Javascript
React Native如何消除启动时白屏的方法
Aug 08 Javascript
JavaScript体验异步更好的解决办法
Jan 08 Javascript
Vue全局分页组件的实现代码
Aug 10 Javascript
在Vue中使用axios请求拦截的实现方法
Oct 25 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中使用smarty生成静态文件的例子
2014/04/24 PHP
CodeIgniter启用缓存和清除缓存的方法
2014/06/12 PHP
求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
2015/09/20 PHP
Yii实现的多级联动下拉菜单
2016/07/13 PHP
PHP实现导出excel数据的类库用法示例
2016/10/15 PHP
TNC vs BOOM BO3 第一场2.13
2021/03/10 DOTA
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
关于文本框的一些限制控制总结~~
2010/04/15 Javascript
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
2010/11/20 Javascript
setTimeout和setInterval的区别你真的了解吗?
2011/03/31 Javascript
javascript高级学习笔记整理
2011/08/14 Javascript
JavaScript中的style.cssText使用教程
2014/11/06 Javascript
JavaScript获得表单target属性的方法
2015/04/02 Javascript
js计算文本框输入的字符数
2015/10/23 Javascript
Bootstarp基本模版学习教程
2017/02/01 Javascript
vue自定义移动端touch事件之点击、滑动、长按事件
2018/07/10 Javascript
浅谈高大上的微信小程序中渲染html内容—技术分享
2018/10/25 Javascript
Vue 引入AMap高德地图的实现代码
2019/04/29 Javascript
微信小程序点击顶部导航栏切换样式代码实例
2019/11/12 Javascript
vue组件中节流函数的失效的原因和解决方法
2020/12/02 Vue.js
[01:33]DOTA2上海特级锦标赛 LIQUID战队完整宣传片
2016/03/16 DOTA
Python获取文件ssdeep值的方法
2014/10/05 Python
Python使用filetype精确判断文件类型
2017/07/02 Python
pandas数据框,统计某列数据对应的个数方法
2018/04/11 Python
Python设计模式之工厂方法模式实例详解
2019/01/18 Python
创建Django项目图文实例详解
2019/06/06 Python
python 画条形图(柱状图)实例
2020/04/24 Python
python使用re模块爬取豆瓣Top250电影
2020/10/20 Python
伦敦剧院门票:London Theatre Direct
2018/11/21 全球购物
十八大报告观后感
2014/01/28 职场文书
优秀信贷员先进事迹
2014/01/31 职场文书
出纳试用期自我鉴定
2014/04/07 职场文书
入党积极分子考察意见
2015/06/02 职场文书
胡桃夹子观后感
2015/06/11 职场文书
Python天气语音播报小助手
2021/09/25 Python
对讲机知识
2022/04/07 无线电