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旋转的更多相关文章

  1. CSS3 transform 属性(2D,3D旋转)

    一.语法 div{ transform:rotate(7deg); -ms-transform:rotate(7deg); /* IE 9 */ -moz-transform:rotate(7deg) ...

  2. 【CSS3进阶】酷炫的3D旋转透视

    之前学习 react+webpack ,偶然路过 webpack 官网 ,看到顶部的 LOGO ,就很感兴趣. 最近觉得自己 CSS3 过于薄弱,想着深入学习一番,遂以这个 LOGO 为切入口,好好研 ...

  3. 3d旋转--transform-style: preserve-3d,translate3d(x,y,z),perspective()

    transform-style: preserve-3d,translate3d(x,y,z),perspective() 让其倾斜的核心:加perspective(600px)让其动的核心:rans ...

  4. 32.qt quick-模仿QQ登录界面实现3D旋转(Rotation、Flipable)

    要想模仿QQ登录界面的3D旋转,我们需要学习Rotation和Flipable.由于没找到QQ的资源图,所以我们以两个图片为例模仿QQ的3D旋转,如下图所示: 最终效果如下所示: 1.Rotation ...

  5. 3D旋转菜单

    今天来个3D旋转菜单,是纯css3实现的,主要用到transform,transition,backface-visibility. 主要是transform这个变换,它是今天猪脚. transfor ...

  6. 低调奢华 CSS3 transform-style 3D旋转

    点击这里查看效果:http://keleyi.com/a/bjad/s89uo4t1.htm 效果图: CSS3 transform-style 属性 以下是代码: <!DOCTYPE html ...

  7. CSS3——3D旋转图(跑马灯效果图)

    CSS3新增了很多新的属性,可以用很少的代码实现炫酷的动画效果,但由于兼容性各浏览器的能力存在不足,有特别需求的网站就呵呵啦.H5C3已是大势所趋了,之前看过一个新闻,Chrome将在年底全面转向H5 ...

  8. Flash相册-------3D旋转应用

    1.图层一,图片1,转换为元件 2.3D旋转工具,变形--->y->180

  9. 【学】CSS3的3D动画 ——3D旋转之骰子样式的钟表(2)上

    这个是3D旋转的进阶版,是一个类似与骰子的正方体.这个版本只有秒数的个位数,还没有写整个钟表,下面那个版本好好想想该怎么写 这个效果需要用到transform-style: preserve-3d. ...

随机推荐

  1. ASP.NET 文档

    标题:ASP.NET 文档 地址:https://docs.microsoft.com/zh-cn/aspnet/index#pivot=core&panel=core_overview 标题 ...

  2. .NET中的堆(Heap)和栈(Stack)的本质

    计算机的内存可以分为代码块内存,Stack内存和Heap内存.代码块内存是在加载程序时存放程序机器代码的地方. 栈(Stack)一般存放函数内的局部变量. 堆(Heap)一般存放全局变量和类对象实例等 ...

  3. C语言语法树

  4. Qt容器类汇总说明

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt容器类汇总说明     本文地址:http://techieliang.com/2017/ ...

  5. vbs习题

    练习题: 1.输入3个数,输出其中最大的那个值. Option Explicit Dim intA,intB,intC intA=CInt(InputBox("请输入a:")) i ...

  6. linux php 访问sql server设置

    1.安装freeTDS wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-stable.tgz 1.1.进入到你下载的目录然后解压.tar - ...

  7. 如何在VScode中添加代码片段

    拿 VUE 举例,新建 VUE 文件,输入前缀,出现代码段 文件 --->  首选项 ---> 用户代码片段  在输入框中输入 vue ,找到 vue.json ,然后在 vue.json ...

  8. 堆模板(pascal)洛谷P3378

    题目描述 如题,初始小根堆为空,我们需要支持以下3种操作: 操作1: 1 x 表示将x插入到堆中 操作2: 2 输出该小根堆内的最小数 操作3: 3 删除该小根堆内的最小数 输入输出格式 输入格式: ...

  9. 程序猿必备技能:数据库管理——关于MySQL

    一.初识MySQL 1.什么是数据库? 数据库(Database,DB)简而言之就是存放数据的仓库,是为了实现一定目的,按照某种规则组织起来的数据的集合. 2.使用数据库的必要性 (1)结构化存储大量 ...

  10. 洛谷P1345 [USACO5.4]奶牛的电信(最小割)

    题目描述 农夫约翰的奶牛们喜欢通过电邮保持联系,于是她们建立了一个奶牛电脑网络,以便互相交流.这些机器用如下的方式发送电邮:如果存在一个由c台电脑组成的序列a1,a2,...,a(c),且a1与a2相 ...