这段代码还是非常简单,是看了一个老师的视频受的启发,也是调用了很多个函数,所以比较杂乱吧!

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>翻转调节器</title>
<style type="text/css">
#container{
-webkit-transform: -webkit-transform 1s linear;
-webkit-perspective: 800px;
-webkit-perspective-origin: 50% 50%;
-webkit-transform-style: -webkit-preserve-3d;
}
#squre{
width: 150px;
height: 150px;
background-color: #00BB00;
margin: 20px auto;
border-radius: 0;
}
.circle{
float: left;
}
.p1,.p2{
width: 50px;
border-radius: 10px;
}
#op{
font-size: 16px;
font-weight: bold;
color: gray;
width: 800px;
margin: 100px auto;
}
#op .change{
width: 721px;
}
</style>
</head>
<body>
<div id="container">
      <div id="squre"></div>
</div>
<button name="button" id="circle" class="circle" onclick="circle()">圆形</button>

<input type="text" id="width" class="p1" placeholder="宽"></input>

<input type="text" id="height" class="p2" placeholder="高"></input>

<button onclick="rec()">确定</button>

<button name="button" id="color" class="color" onclick="changecolor()">改个颜色</button>

<div id="op">

<p>rotate x: <span id="lolx">0</span> deg</p>
      <input type="range" min="-360" max="360" id="changeX" value="0" class="change" onchange="rotate()" /><br/>
<p>rotate y: <span id="loly">0</span> deg</p>
      <input type="range" min="-360" max="360" id="changeY" value="0" class="change" onchange="rotate()" /><br/>
<p>rotate z: <span id="lolz">0</span> deg</p>
      <input type="range" min="-360" max="360" id="changeZ" value="0" class="change" onchange="rotate()" /><br/>
</div>
<script type="text/javascript">

function circle(){
var circle=document.getElementById('squre');
circle.style.borderRadius="75px";
circle.style.width='150px';
squre.style.height='150px';
}

function rec(){
var squre=document.getElementById('squre');
var wid=document.getElementById('width').value;
var hei=document.getElementById('height').value;
squre.style.height=hei+'px';
squre.style.width=wid+'px';
squre.style.borderRadius='0';
}

/*这里是一个闭包的随机颜色代码*/

var getRandomColor = function(){
return '#' +
(function(color){
return (color += '0123456789abcdef'[Math.floor(Math.random()*16)])
&& (color.length == 6) ? color : arguments.callee(color);
})('');
}

function changecolor(){
var color=document.getElementById('squre');
color.style.backgroundColor=getRandomColor();

}

function rotate(){
var x = document.getElementById("changeX").value;
var y = document.getElementById("changeY").value;
var z = document.getElementById("changeZ").value;
document.getElementById('squre').style.webkitTransform = "rotateX("+x+"deg) rotateY("+y+"deg) rotateZ("+z+"deg)";

document.getElementById('lolx').innerText = x;
document.getElementById('loly').innerText = y;
document.getElementById('lolz').innerText = z;
}
</script>
</body>
</html>

自己做得一个用于直观观察css3 transform属性中的rotate 3D效果的更多相关文章

  1. CSS3 animation属性中的steps实现GIF动图(逐帧动画)

    相信 animation 大家都用过很多,知道是 CSS3做动画用的.而我自己就只会在 X/Y轴 上做位移旋转,使用 animation-timing-function 规定动画的速度曲线,常用到的 ...

  2. CSS3 transform 属性

    CSS3 transform 属性 语法: transform: none|transform-functions; 值 描述 none 定义不进行转换. matrix(n,n,n,n,n,n) 定义 ...

  3. css3动画属性中的transition属性

    一.语法 transition: property duration timing-function delay; 值 描述 transition-property 规定设置过渡效果的 CSS 属性的 ...

  4. 【CSS3 transform属性和过渡属性详解】

    CSS3transform属性详解 transform字面上就是变形,改变的意思. 在CSS3中transform主要包括以下几种:旋转rotate.扭曲skew.缩放scale和移动translat ...

  5. css3 transform属性多值的顺序问题

    对于transform属性的多值的顺序问题,我自己就被困扰过.后来知道了跟顺序有关,但是不知道为什么.我想应该很多人跟我以前一样,知其然不知其所以然.如果不知道的,也许这篇文章会对大家有所帮助. 先来 ...

  6. CSS3 transform属性

    说明: transform 属性向元素应用 2D 或 3D 转换.该属性允许我们对元素进行移动(translate).旋转(rotate).缩放(scale)或倾斜(skew) transition属 ...

  7. CSS3 transform 属性详解(skew, rotate, translate, scale)

    写这篇文章是因为在一个前端QQ群里,网友 "小豆豆" (应他要求要出现他的网名......) ,问skew的角度怎么算,因为他看了很多文章还是不能理解skew的原理.于是,我觉得有 ...

  8. css3学习--css3动画详解二(3d效果)

    一.设置3D场景 perspective:800       //浏览器到物体的距离(像素)perspective-origin:50% (x轴) 50% (y轴)    //视点的位置 transf ...

  9. 商品标签例子——CSS3 transform 属性

    积累很重要.从此开始记录前端生涯的点滴.... <!DOCTYPE html><html lang="en"><head> <meta c ...

随机推荐

  1. SVG六基本元素

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. CCNA网络工程师学习进程(8)访问控制列表ACL

    前面几节我们介绍了路由器的路由配置,接下来几节我们将介绍路由器的高级配置应用,包括ACL.NAT.DHCP.PPP.VPN和远程连接等的配置.     (1)ACL概述:   ACL(Access C ...

  3. delphi 预览图片2 (MouseUP)

    这个是自己项目在使用的,所以带有些业务功能的代码. 逻辑上使用的大多是 mouseup ,MouseMove,Mousedown.使用recttangle容器实现滑动.网上有这个下载demo. 另外移 ...

  4. HDU2579

    Dating with girls(2) Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  5. 转:Oracle弃用sun.reflect.Reflection.getCallerClass

    http://www.infoq.com/cn/news/2013/07/Oracle-Removes-getCallerClass 作为Java开发者,我们经常忽略@Deprecated注释,继续使 ...

  6. 【ci框架基础】之部署百度编辑器

    在ci框架下加载编辑器,现在复习下内容.我的框架文件名称为ci 1.下载百度编辑器ueditor,http://ueditor.baidu.com/ 一般情况下下载ubuilder版即可,并将uedi ...

  7. linux脚本: 后台启动程序并重定向输出信息脚本

    后台启动程序并重定向输出信息脚本 新建文件mstart, 写入下面代码. #!/bin/bash $1 1>/etc/null 2>&1 & 说明 1>/etc/nu ...

  8. Spark:使用Spark Shell的两个示例

    Spark:使用Spark Shell的两个示例 Python 行数统计 ** 注意: **使用的是Hadoop的HDFS作为持久层,需要先配置Hadoop 命令行代码 # pyspark >& ...

  9. linux脚本错误: line *: [: missing `]'

    错误: line *: [: missing `]' 写脚本时,我碰到这个问题是因为if [ ]; ...else...fi语句 解决方法: if后面的[] (test) 和条件要有空格,如: 对于语 ...

  10. Java豆瓣电影爬虫——减少与数据库交互实现批量插入

    节前一个误操作把mysql中record表和movie表都清空了,显然我是没有做什么mysql备份的.所以,索性我把所有的表数据都清空的,一夜回到解放前…… 项目地址:https://github.c ...