原生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 字符编码规则
May 04 Javascript
Javascript var变量隐式声明方法
Oct 19 Javascript
url地址自动加#号问题说明
Aug 21 Javascript
基于jQuery的让非HTML5浏览器支持placeholder属性的代码
May 24 Javascript
JavaScript保留两位小数的2个自定义函数
May 05 Javascript
innerHTML中标签可以换行的方法汇总
Aug 14 Javascript
jQuery中的通配符选择器使用总结
May 30 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
Aug 31 Javascript
详解VueJS应用中管理用户权限
Feb 02 Javascript
在JavaScript中使用严格模式(Strict Mode)
Jun 13 Javascript
Vue实现可移动水平时间轴
Jun 29 Javascript
react使用antd的上传组件实现文件表单一起提交功能(完整代码)
Jun 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生成HTML静态页面实例代码
2008/08/31 PHP
PHPMailer邮件类利用smtp.163.com发送邮件方法
2008/09/11 PHP
教你如何使用php session
2013/10/28 PHP
用php来限制每个ip每天浏览页面数量的实现思路
2015/02/24 PHP
php实现俄罗斯乘法实例
2015/03/07 PHP
利用Laravel生成Gravatar头像地址的优雅方法
2017/12/30 PHP
jquery插件开发方法(初学者)
2012/02/03 Javascript
JavaScript中的Number数字类型学习笔记
2016/05/26 Javascript
jQuery 限制输入字符串长度
2016/06/20 Javascript
Vue中fragment.js使用方法详解
2017/03/09 Javascript
webpack处理 css\less\sass 样式的方法
2017/08/21 Javascript
Bootstrap 树控件使用经验分享(图文解说)
2017/11/06 Javascript
Vue中的字符串模板的使用
2018/05/17 Javascript
vue的.vue文件是怎么run起来的(vue-loader)
2018/12/10 Javascript
微信小程序访问豆瓣电影api的实现方法
2019/03/31 Javascript
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
2019/07/09 Javascript
vue中监听路由参数的变化及方法
2019/12/06 Javascript
vue-router 2.0 跳转之router.push()用法说明
2020/08/12 Javascript
利用python批量给云主机配置安全组的方法教程
2017/06/21 Python
python读取图片并修改格式与大小的方法
2018/07/24 Python
python爬虫 execjs安装配置及使用
2019/07/30 Python
python实现猜拳游戏项目
2020/11/30 Python
CSS3下的渐变文字效果实现示例
2018/03/02 HTML / CSS
美国室内和室外装饰花盆购物网站:ePlanters
2019/03/22 全球购物
Mountain Warehouse波兰官方网站:英国户外品牌
2019/08/29 全球购物
Gerry Weber德国官网:优质女性时装,德国最大的时装公司之一
2019/11/02 全球购物
保护环境建议书
2014/03/12 职场文书
态度决定一切演讲稿
2014/05/20 职场文书
机械机修工岗位职责
2014/08/03 职场文书
医院党员公开承诺书
2014/08/30 职场文书
2014年采购工作总结
2014/11/20 职场文书
小学教师求职信范文
2015/03/20 职场文书
转正申请报告格式
2015/05/15 职场文书
小学五年级(说明文3篇)
2019/08/13 职场文书
python opencv将多个图放在一个窗口的实例详解
2022/02/28 Python
CentOS下安装Jenkins的完整步骤
2022/04/07 Servers