jquery css 3d旋转demo
来源:互联网 发布:网站源码程序哪个 编辑:程序博客网 时间:2024/05/20 12:46
参考博客:http://blog.csdn.net/lmj623565791/article/details/32964301
demo在chrome浏览器中测试,具体的属性在各浏览器中的兼容性各位可以自己改一下。
css属性:-webkit-transform-style:preserve-3d; 在3D空间内呈现元素
-webkit-perspective: 1200px; (谷歌)视图位置,相对元素。(火狐-moz-perspective: 800px;)
-webkit-transition: -webkit-transform 0.8s;(transition: transform 0.8s;)状态转换时间-webkit-transform: rotateY(180deg); 状态,相对Y轴转180度-webkit-backface-visibility: hidden; 图片翻转180是否yincang动态图片不会搞。。。。。。设计思路:1.10张图片的以position:absolute;方式叠放在一起。第一张中心图片设置tranform:rotateZ(0deg)不动。,其他图片设置tranform:rotateZ(200deg)相对Z轴向外移动200deg。形成一个圆形。用js实现9张图片相对Y轴做不同角度的旋转。在代码的$(document).ready()中。到这里基本的显示已经完成。2.点击stage容器,触发click事件。全体的10张图片分别以Y轴转40度,旋转时间在transition:transform 0.8s中设置,形成动画效果。在写一个事件触发器,每隔1.5秒触发一次stage容器的点击事件。就会形成一个连续的旋转动画。
1.html<div id="stage" style="height:100px;"> <ul class="container"> <li id="stageBg"> <img src="/picture/pabupa.jpg" /> </li> <li> <img src="/picture/mojian.jpg" /> </li> <li> <img src="/picture/kuanjian.jpg" /> </li> <li> <img src="/picture/mojian.jpg" /> </li> <li> <img src="/picture/kuanjian.jpg" /> </li> <li> <img src="/picture/mojian.jpg" /> </li> <li> <img src="/picture/kuanjian.jpg" /> </li> <li> <img src="/picture/mojian.jpg" /> </li> <li> <img src="/picture/kuanjian.jpg" /> </li> <li> <img src="/picture/mojian.jpg" /> </li> </ul></div>
2.css.container li { position: absolute; width: 128px; display: block; -webkit-transition: -webkit-transform 0.8s; transition: transform 0.8s; text-align: center;}.container li img { width: 100px; /*-webkit-backface-visibility: hidden;*/}.container { margin-left: 500px; -webkit-transform-style: preserve-3d; }body { -webkit-perspective: 1200px;}#stageBg { -webkit-transform: rotateY(0deg); width: 50px;}
3.js代码$(document).ready(function() { for (var i = 0; i < 10; i++) { $(".container li:not('#stage')").eq(i).css("-webkit-transform",'rotateY('+ ((40)*(i-1)) +'deg) translateZ(200px)'); } $("#stageBg").css("-webkit-transform",'rotateY(0deg)'); })$(document).on('click',"#stage", function() { $(".container li").each(function(index, val) { var rotateY = this.style.webkitTransform; var regY = /^rotateY\((\d*)deg.*$/; var newRotate = parseInt(regY.exec(rotateY)[1]) + 40; if (newRotate > 10800) { newRotate -= 10800; } if ($(val).attr('id') == 'stageBg') { $(this).css("-webkit-transform",'rotateY('+ newRotate +'deg)'); } else { $(this).css("-webkit-transform",'rotateY('+ newRotate +'deg) translateZ(200px)'); } }) });setInterval(function() { $('#stage').click(); },1500) //时间循环,每1.5秒转动一次
问题:我把perspective:1200.设在stage中时,图片基本显示在一条水平线上,3D效果不明显,所有我把这个属性设置在body上,不明白为什么在body上效果就会明显很多。我设置了每次rotateY在到10800+deg时,都会回到减去10800.防止数字过大出现错误。但是会有图片旋转很多圈的情况,希望大牛能够给与修改建议。
阅读全文
1 0
- jquery css 3d旋转demo
- css 3d旋转
- CSS伪3d旋转
- 纯CSS实现3D旋转
- CSS图片3D旋转效果
- jQuery 实现 图片3D 旋转
- jquery 旋转木马3D文字效果
- android opengl es 3d 贴图 旋转立方体demo
- html+css实现3D旋转图片展示
- 详解用CSS绘制3D旋转立方体
- 用CSS实现3D魔方动画旋转
- CSS 3D炫酷的 旋转魔方
- 前端案例--纯css动画transform视距3D旋转
- CSS+HTML实现3D图片旋转效果
- jQuery炫酷3d旋转木马特效插件
- jQuery炫酷3D旋转幻灯片特效插件
- jQuery炫丽星空3d旋转星空
- jQuery 3D旋转图片轮播插件imageflow.js
- 提高测试覆盖率
- JavaScript原型,原型链
- SQL 分析函数之KEEP (DENSE_RANK FIRST/LAST)
- LeetCode8——String to Integer (atoi)(自己编写atoi函数)
- css几行代码实现强制换行写法和强制不换行写法
- jquery css 3d旋转demo
- ASP.NET使用Jcrop插件实现图片上传裁剪功能
- Lua收到C++传入的参数类型有一种userdata
- Subline Text 3中文乱码问题解决
- 原来,坚持是这种体验
- 区块链之Hyperledgerd搭建(二、下载fabric源代码并用Docker 创建Fabric网络 & 创建/加入通道(账本))
- This page intentionally left blank.
- 浅谈SPI总线
- 怎么安装网线水晶头