2D旋转和3D旋转
2D旋转
先给个容器
<p onClick="rotate2D()" id="rotate2D" class="animated_div">2D 旋转</p>
再给个样式(乱写的,可随意修改。)
.animated_div{width:60px; height:40px; color:#ffffff; position:relative; font-weight:bold; padding:20px 10px 0px 10px; float:left; margin:20px; margin-right:50px; border:1px solid #888888; -webkit-border-radius:5px; -moz-border-radius:5px; border-radius:5px; font:12px Verdana, Arial, Helvetica, sans-serif; text-align:center; vertical-align:middle;}
#rotate2D{border:1px solid #000000; background:red; margin:10px; opacity:0.7;}
定义好需要的变量
//2dContainer为获取到的旋转元素
//count2D用来在Timer里面计算的渐变的角度
//roll2DTimer旋转的定时器
var 2dContainer,count2D=0,roll2DTimer;
拿到元素让它转
function rotate2D()
{
2dContainer=document.getElementById("rotate2D");
clearInterval(roll2DTimer);
roll2DTimer=setInterval("start2DRotate()",10);
}
具体怎么转还得写在计时器里
function start2DRotate()
{
count2D=count2D+1;
2dContainer.style.transform="rotate(" + count2D + "deg)";
2dContainer.style.webkitTransform="rotate(" + count2D + "deg)";
2dContainer.style.OTransform="rotate(" + count2D + "deg)";
2dContainer.style.MozTransform="rotate(" + count2D + "deg)";
if (count2D==180 || count2D==360)
{
clearInterval(roll2DTimer);
if (count2D==360){count2D=0;}
}
}
style里所有浏览器的transform都有属性,都要进行对应的设置,设置的方式是把rotate()方法写成字符串传给transform属性,这个方式还挺特别的。
3D旋转也一样,先来一个容器
<p onClick="rotate3D()" id="rotate3D" class="animated_div">3D 旋转</p>
样式和2D的一样
.animated_div{width:60px; height:40px; color:#ffffff; position:relative; font-weight:bold; padding:20px 10px 0px 10px; float:left; margin:20px; margin-right:50px; border:1px solid #888888; -webkit-border-radius:5px; -moz-border-radius:5px; border-radius:5px; font:12px Verdana, Arial, Helvetica, sans-serif; text-align:center; vertical-align:middle;}
#rotate3D{border:1px solid #000000; background:red; margin:10px; opacity:0.7;}
定义好需要的变量
//3dContainer为获取到的旋转元素
//count3D用来在Timer里面计算的渐变的角度
//roll3DTimer旋转的定时器
var 3dContainer,count3D=0,roll3DTimer;
拿到元素让它转
function rotate3D()
{
3dContainer=document.getElementById("rotate3D");
clearInterval(rot3DTimer);
rot3DTimer=setInterval("start3DRotate()",10);
}
在计时器里写具体转法
function start3DRotate()
{
count3D=count3D+1;
3dContainer.style.transform="rotateY(" + count3D + "deg)";
3dContainer.style.webkitTransform="rotateY(" + count3D + "deg)";
3dContainer.style.OTransform="rotateY(" + count3D + "deg)";
3dContainer.style.MozTransform="rotateY(" + count3D + "deg)";
if (count3D==180 || count3D>=360)
{
clearInterval(rot3DTimer);
if (count3D>=360){count3D=0;}
}
}
终于可以转起来了呢,然而这并没有什么卵用,毫无逼格!
2D旋转和3D旋转的更多相关文章
- CSS3 transform 属性(2D,3D旋转)
一.语法 div{ transform:rotate(7deg); -ms-transform:rotate(7deg); /* IE 9 */ -moz-transform:rotate(7deg) ...
- 【CSS3进阶】酷炫的3D旋转透视
之前学习 react+webpack ,偶然路过 webpack 官网 ,看到顶部的 LOGO ,就很感兴趣. 最近觉得自己 CSS3 过于薄弱,想着深入学习一番,遂以这个 LOGO 为切入口,好好研 ...
- 3d旋转--transform-style: preserve-3d,translate3d(x,y,z),perspective()
transform-style: preserve-3d,translate3d(x,y,z),perspective() 让其倾斜的核心:加perspective(600px)让其动的核心:rans ...
- 32.qt quick-模仿QQ登录界面实现3D旋转(Rotation、Flipable)
要想模仿QQ登录界面的3D旋转,我们需要学习Rotation和Flipable.由于没找到QQ的资源图,所以我们以两个图片为例模仿QQ的3D旋转,如下图所示: 最终效果如下所示: 1.Rotation ...
- 3D旋转菜单
今天来个3D旋转菜单,是纯css3实现的,主要用到transform,transition,backface-visibility. 主要是transform这个变换,它是今天猪脚. transfor ...
- 低调奢华 CSS3 transform-style 3D旋转
点击这里查看效果:http://keleyi.com/a/bjad/s89uo4t1.htm 效果图: CSS3 transform-style 属性 以下是代码: <!DOCTYPE html ...
- CSS3——3D旋转图(跑马灯效果图)
CSS3新增了很多新的属性,可以用很少的代码实现炫酷的动画效果,但由于兼容性各浏览器的能力存在不足,有特别需求的网站就呵呵啦.H5C3已是大势所趋了,之前看过一个新闻,Chrome将在年底全面转向H5 ...
- Flash相册-------3D旋转应用
1.图层一,图片1,转换为元件 2.3D旋转工具,变形--->y->180
- 【学】CSS3的3D动画 ——3D旋转之骰子样式的钟表(2)上
这个是3D旋转的进阶版,是一个类似与骰子的正方体.这个版本只有秒数的个位数,还没有写整个钟表,下面那个版本好好想想该怎么写 这个效果需要用到transform-style: preserve-3d. ...
随机推荐
- Spring的事务到底该给Dao配置还是给Service配置
Spring的事务到底该给Dao配置还是给Service配置 Spring事务为业务逻辑进行事务管理,保证业务逻辑上数据的原子性. 事务得根据项目性质来细分:事务可以设置到三个层面(dao层.serv ...
- Codeforces Round #345 (Div. 1) C. Table Compression dp+并查集
题目链接: http://codeforces.com/problemset/problem/650/C C. Table Compression time limit per test4 secon ...
- IT小小鸟的读后感
在我经历了半个学期的大学生活后,我依然不清楚我现在所学的专业有什么用或者说该怎么学.直到我阅读了<我是一只IT小小鸟>这篇文章之后.我才对我所将来或许要从事的IT事业有了些许的了解. 在观 ...
- 阅读笔记《我是一只IT小小鸟》
我是一只IT小小鸟 我们在尝试新的事物的时候,总是会遇到各种各样的困难,不同的人会在碰壁不同的次数之后退出.用程序员喜欢的话来说就是,我们都在for循环,区别在于你是什么情况下break;的.有的人退 ...
- http://deepdish.io/2015/04/28/creating-lmdb-in-python/
http://deepdish.io/2015/04/28/creating-lmdb-in-python/
- iOS- Swift和Object-C的混合编程
1.前言 事实证明,在短时间内Swift还取代不了Object-C, 而且.... Apple Swift 开发小组的人说的:「We'll recommend people start with ...
- BOM对象属性定时器的调用
使count中的内容,自动切换 <body> <h1 id="count"></h1> </body> //获取count var ...
- 0330复利计算java版
package compounding; import java.util.Scanner; public class compounding1_1 { public static void main ...
- SQL Inserted和deleted详解
create trigger updateDeleteTime on user for update as begin update user set UpdateTime=(getdate()) f ...
- [您有新的未分配科技点]博弈论入门:被博弈论支配的恐惧(Nim游戏,SG函数)
今天初步学习了一下博弈论……感觉真的是好精妙啊……希望这篇博客可以帮助到和我一样刚学习博弈论的同学们. 博弈论,又被称为对策论,被用于考虑游戏中个体的预测行为和实际行为,并研究他们的应用策略.(其实这 ...