3D幻灯片轮换(CSS3+原生js)
2016-10-13 14:55
197 查看
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{ margin: 0; padding: 0; } body{ background:black; } #wrap{ width: 100%; height: 200px; margin-top:150px ; position: relative;/*相对定位 不动的参照物*/ transform-style: preserve-3d;/*类似于一个3D画布*/ perspective: 800px; /*效果近大远小,体现立体感*/ } #wrap img{ width: 300px; height: 200px; position: absolute;/*绝对定位 要动的 ,父元素是他的参照物*/ border-radius: 3px;/*圆角*/ box-shadow: 0 0 5px #0f0; -webkit-box-reflect: below 5px -webkit-linear-gradient(top, rgba(0,0,0,0) 20%, rgba(0,0,0,.7) 100%);/*reflect:倒影 偏离像素;-webkit-linear-gradient:渐变*/ transition: .8s;/*图片动态轮换的时间*/ } .left{ transform: rotateY(45deg) translateZ(-100px); /* rotateY :按Y轴旋转45度;translateZ:3D转换Z轴的值*/ } .middle{ transform: translateZ(100px); } .right{ transform: rotateY(-45deg) translateZ(-100px); } </style> <!-- 作者:971331330@qq.com 时间:2016-10-13 描述:img标签里面的style.left 这里的像素需要根据不同的分辨率做调整;本机1600*900; 不同分辨率下,渲染器自动计算出来得数据不一样,会导致点击不到部分图片; --> </head> <body> <div id="wrap"> <img src="img/1.png" style="left: 300px;" class="left"> < <img src="img/2.png" style="left: 400px;" class="left"/> <img src="img/3.png" style="left: 500px;" class="middle"/> <img src="img/4.png" style="left: 600px;" class="right"/> <img src="img/5.png" style="left: 700px;" class="right"/> </div> <script type="text/javascript"> var wrap = document.getElementById("wrap"); var img = wrap.getElementsByTagName("img"); var mindex = 2;//记录当前位于中间的img小标 for (var i = 0; i < img.length; i++) { img[i].index = i; //自定义一个属性,点击的的哪个图片 img[i].onclick = function () { var nindex = this.index;//把当前点击的图片的下标传给nindex for (var j = 0; j < img.length; j++) {//click事件触发的的改变 img[j].style.left = img[j].offsetLeft - 100*(nindex-mindex) + 'px'; //图片的位移,(nindex-mindex)可正可负,左移右移 if (j < nindex) {//nindex 为当前click的img下标 img[j].className = "left"; //改变样式 } else if (j > nindex) { img[j].className = "right"; } else { img[j].className = "middle"; } } mindex = nindex;//本次点击后,中间的图片变成当前点击的图片,需要记录下来,作为下次点击的参照 } } </script> </body> </html>
相关文章推荐
- 原生Js实现按的数据源均分时间点幻灯片效果(已封装)
- CSS3 3D变换幻灯片
- 【JS+CSS3】实现带预览图幻灯片效果的示例代码
- 原生js与css3结合的电风扇
- css3 transform及原生js实现鼠标拖动3D立方体旋转
- 漂亮的js tab图片轮换效果代码(可自定义的幻灯片和图片缓冲切换)
- HTML5+CSS3+JS学习笔记-11-CSS3之3D转换的用法
- js实现3D图片逐张轮播幻灯片特效代码分享
- 基于jQuery和CSS3炫酷图片3D旋转幻灯片特效
- JS+CSS3实现带预览图幻灯片效果
- CSS3和js弄出来的3D旋转效果
- 面向对象原生js幻灯片代淡出效果
- 一款纯css3实现的图片3D翻转幻灯片
- CSS3和js炫酷点击按钮3D翻转动画特效
- 原生Js实现按的数据源均分时间点幻灯片效果(已封装)
- 一款纯css3实现的图片3D翻转幻灯片
- 原生js判断css3动画过度(transition)结束 transitionend事件 以及关键帧keyframes动画结束(animation)回调函数 animationEnd
- 利用css3和js原生实现鼠标移入移出模块透明度的变化
- Impress.js上手 - 抛开PPT、制作Web 3D幻灯片放映