3D-立体旋转轮播
2017-06-18 21:59
148 查看
立体旋转轮播
通过腾讯公开课学习的轮播效果,下面是效果图。以下是实现此特效的具体代码:
HTML代码:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>3D-立体旋转轮播</title> </head> <body> <div id="banner"> <ul> </ul> <ol> <li class="curr"></li> <li></li> <li></li> <li></li> </ol> </div> </body> </html>
CSS代码:
* { margin: 0; padding: 0; } li { list-style: none; } #banner { width: 800px; height: 360px; margin: 150px auto; /*加阴影*/ box-shadow: 0 0 10px #c06; perspective: 800px; } #banner ul { height: 360px; } /*每个小li就是一个立方体*/ #banner ul li { height: 360px; position: relative; transform-style: preserve-3d; float: left; transform-origin: 50% 50% -180px; /*transition: 1s;加上的话,则整体一起旋转。需单独每个div设置延迟时间*/ } #banner ul li div { position: absolute; width: 100%; height: 100%; } #banner ul li div:nth-child(1) {/*上*/ top: -360px; transform-origin: bottom; transform: rotateX(90deg); background-image: url("images/1.jpg"); } #banner ul li div:nth-child(2) {/*下*/ top: 360px; transform-origin: top; transform: rotateX(-90deg); background-image: url("images/2.jp 4000 g"); } #banner ul li div:nth-child(3) {/*前*/ background-image: url("images/3.jpg"); } #banner ul li div:nth-child(4) {/*后*/ background-image: url("images/4.jpg"); transform: translateZ(-360px) rotateX(-180deg); } ol li { width: 40px; height: 40px; background: #ccc; border-radius: 50%; float: left; margin: 10px; } ol li.curr { background-color: red; }
JS代码:
var oUl = document.getElementsByTagName("ul")[0]; var oOl = document.getElementsByTagName("ol")[0]; var oCss = document.getElementById("css"); var aLi = oOl.getElementsByTagName("li"); var sum = 10; var w = 800 / sum; var html = '', css = '', lazy = '', z = 0, zIndex = ''; for(var i = 0; i < 10; i++) { html += "<li style=width:"+w+"px><div></div><div></div><div></div><div></div></li>"; if(i > sum / 2) { z--; zIndex += "#banner ul li:nth-child("+(i+1)+"){z-index:"+z+"}"; } css += "#banner ul li:nth-child("+(i+1)+") div{background-position:"+i*-w+"px}"; lazy += "#banner ul li:nth-child("+(i+1)+"){transition:1s "+i*0.1+"s}"; } oUl.innerHTML = html; oCss.innerHTML += css + lazy + zIndex; for(var i = 0; i < aLi.length; i++) { aLi[i].index = i; aLi[i].onclick = function () { for(var j = 0; j < aLi.length; j++){ aLi[j].className = ''; } this.className = "curr"; oCss.innerHTML += "#banner ul li{transform:rotateX("+this.index*-90+"deg)}"; } }
相关文章推荐
- 关于实现3D立体旋转效果的轮播视图
- 【HTML5】3D模型--百行代码实现旋转立体魔方
- 从零开始打造一个Android 3D立体旋转容器
- Android动画3D立体旋转,属性动画与View动画效果区别
- Android 3D立体无限旋转滚动容器
- Android自定义组件系列【11】——实现3D立体旋转效果
- WPF技术触屏上的应用系列(四): 3D效果图片播放器(图片立体轮放、图片立体轮播、图片倒影立体滚动)效果实现
- Android自己定义组件系列【11】——实现3D立体旋转效果
- 3D立体相册,一个可旋转的立体相册
- Android 从零开始打造一个 3D立体旋转容器
- 绚丽的ConvenientBanner轮播效果图(包含3D翻转等多种立体效果)
- Ios精品源码,tableview下载视频直播源播放器图片位置3D立体旋转相册屏风动画
- HTML5技术秀:你的3D立体旋转名字
- jQuery 3D旋转图片轮播插件imageflow.js
- JS 实现3D立体效果的首页轮播图(瞬间让你的网站高大上,逼格满满)
- iOS 使用 CATransform3D 处理 3D 影像、制做互动立体旋转的效果
- [置顶] 从零开始打造一个Android 3D立体旋转容器
- 实现3D立体旋转效果(流畅)
- 【示例代码】3D旋转图片立体展示jquery幻灯片插件(附源码)
- 从零开始打造一个Android 3D立体旋转容器