原生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 相关文章推荐
Js日期选择器并自动加入到输入框中示例代码
Aug 02 Javascript
javascript实现简单的鼠标拖动效果实例
Apr 10 Javascript
JavaScript 对象深入学习总结(经典)
Sep 29 Javascript
原生js模拟淘宝购物车项目实战
Nov 18 Javascript
以BootStrap Tab为例写一个前端组件
Jul 25 Javascript
使用Object.defineProperty如何巧妙找到修改某个变量的准确代码位置
Nov 02 Javascript
详解vue中使用vue-quill-editor富文本小结(图片上传)
Apr 24 Javascript
Vue实现根据hash高亮选项卡
May 27 Javascript
详解基于Vue/React项目的移动端适配方案
Aug 23 Javascript
vue中js判断长时间不操作界面自动退出登录(推荐)
Jan 22 Javascript
解决echarts图表使用v-show控制图表显示不全的问题
Jul 19 Javascript
详解JS深拷贝与浅拷贝
Aug 04 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 安全检测代码片段(分享)
2013/07/05 PHP
php中将一段数据存到一个txt文件中并显示其内容
2014/08/15 PHP
PHP获取数组最大值下标的方法
2015/05/12 PHP
Zend Framework入门教程之Zend_View组件用法示例
2016/12/09 PHP
thinkPHP实现的省市区三级联动功能示例
2017/05/05 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
2017/05/12 PHP
一个简单的js动画效果代码
2010/07/20 Javascript
onkeyup,onkeydown和onkeypress的区别介绍
2013/10/21 Javascript
jquery的ajax异步请求接收返回json数据实例
2014/06/16 Javascript
加随机数引入脚本不让浏览器读取缓存
2014/09/04 Javascript
JavaScript将取代AppleScript?
2014/09/18 Javascript
jQuery的context属性用法实例
2014/12/27 Javascript
浅谈javascript 函数表达式和函数声明的区别
2016/01/05 Javascript
前端设计师们最常用的JS代码汇总
2016/09/25 Javascript
Java  Spring 事务回滚详解
2016/10/17 Javascript
利用策略模式与装饰模式扩展JavaScript表单验证功能
2017/02/14 Javascript
vue元素实现动画过渡效果
2017/07/01 Javascript
Express + Session 实现登录验证功能
2017/09/08 Javascript
Angular.js通过自定义指令directive实现滑块滑动效果
2017/10/13 Javascript
React Native中Navigator的使用方法示例
2017/10/13 Javascript
js断点调试心得分享(必看篇)
2017/12/08 Javascript
解决vue v-for 遍历循环时key值报错的问题
2018/09/06 Javascript
在微信小程序中使用mqtt服务的方法
2019/12/13 Javascript
Python中使用动态变量名的方法
2014/05/06 Python
python获取外网ip地址的方法总结
2015/07/02 Python
tensorflow实现加载mnist数据集
2018/09/08 Python
python监控nginx端口和进程状态
2019/09/06 Python
Python pip 常用命令汇总
2020/10/19 Python
分享一个页面平滑滚动小技巧(推荐)
2019/10/23 HTML / CSS
英国领先的票务代理商之一:The Ticket Factory
2019/02/09 全球购物
2014社区三八妇女节活动方案
2014/03/30 职场文书
2015年医德考评自我评价
2015/03/03 职场文书
2015年乡镇卫生院妇幼保健工作总结
2015/05/19 职场文书
2015年初中教师个人工作总结
2015/07/21 职场文书
当你焦虑迷茫时,请读读这6句话
2019/07/24 职场文书
MySQL优化之慢日志查询
2022/06/10 MySQL