当前位置: 首页 > news >正文

css3 TransformZ() 3D缩放

      transformZ()函数做了一个在Z轴移动的工作,3D空间中,Z轴垂直于x-y所在平面-也就是界面所在的平面,而我们的视角正好垂直于xy平面,所以进行transformZ() 3D缩放,其实在我们的视角中是一个在远离X-Y平面与接近X-Y平面的过程,当其值为0可以理解为就在x-y平面上;当其为正值的时候,其向指向界面外移动,当其值愈大,则移动得愈远,在我们的视角,就会呈现一个愈来愈大的元素;反之为负值,则会向界面内进行移动,其负值愈小,则离界面愈远,我们视角看上去它呈现的元素就愈来愈小。

      实例:

HTML:

1 <div class="demo">
2     <h4 class="title">舞台视角大小201像素,子元素translateZ值为: <span id="translateZ" class="translateZ">0</span>px;</h4>
3     <p class="range_area">-100 
4         <input type="range" id="range" min="-100" max="300" step="5" value="0" autocomplete="off" /> 300
5     </p>
6     <div id="stage" class="container">
7         <div class="piece"></div>
8     </div>
9 </div>
View Code

css:

 1 .demo {width:500px;margin:10px;border:1px solid red;}
 2 .demo .title {text-align: center;font-size: 1em;}
 3 .translateZ {color:red;}
 4 .range_area {text-align: center;}
 5 .range_area input {position:relative;width:300px;z-index:100;}
 6 .demo .container {
 7     width:400px;
 8     height:100px;
 9     padding:50px;
10     background:#f0f0f0;
11     box-shadow: inset 0 0 3px rgba(0,0,0,.35);
12     -webkit-transition: top .5s;
13     -moz-perspective: 201px;
14     -webkit-perspective: 201px;
15     perspective: 201px;
16     position: relative;
17     z-index: 2;
18     top: 0;
19 }
20 .piece {
21     width: 100px;
22     height: 100px;
23     margin: 0 auto;
24     background-color:red;
25     padding: 10px;
26     -moz-box-sizing: border-box;
27     -webkit-box-sizing: border-box;
28     box-sizing: border-box;
29     position: relative;
30 }
View Code

JS:

 1 (function(){
 2     var randomColor = function(){
 3         return "hsla("+Math.round(360 * Math.random())+","+"60%,50%,.75)";
 4     };
 5     // css transform 变换
 6     var transform = function(element, value, key) {
 7         key = key || "Transform";
 8         ["Moz", "O", "Ms", "Webkit", ""].forEach(function(prefix) {
 9             element.style[prefix + key] = value;    
10         }); 
11         
12         return element;
13     };
14     var $ = function(selector) {
15         return document.querySelector(selector);
16     };
17     // 获取元素
18     var eleStage = $("#stage"),
19         range = $("#range"),
20         piece = $(".piece"),
21         translateZ = $("#translateZ");
22 
23     // 添加时间监听器
24     range.addEventListener("change",function(){
25 
26         transform(piece,"translateZ("+this.value+"px)");
27         translateZ.innerHTML = this.value;
28     });
29     console.log(range.value);
30     transform(piece,"translateZ("+range.value+"px)");
31 
32     piece.style.backgroundColor = randomColor();
33 })();
View Code

 

 查看实例demo演示效果:

 

转载于:https://www.cnblogs.com/qbzmy/p/css3.html

相关文章:

  • java解惑你知多少(八)
  • 多线程总结之旅(8):线程同步之信号量
  • java类初始化顺序
  • bootstrap总结
  • java创建对象的四种方式
  • java基础之String
  • 为什么单例对象的并发调用需要同步?
  • Spring_事务(1)
  • java集合框架总结
  • LeetCode-Count Bits
  • Java中对HashMap的深度分析与比较
  • java 线程小结
  • JAVA中精确计算金额BigDecimal
  • java并发编程实践笔记
  • 第四章 進程調度
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • canvas 绘制双线技巧
  • iOS 系统授权开发
  • JavaScript服务器推送技术之 WebSocket
  • js中forEach回调同异步问题
  • JS专题之继承
  • LeetCode算法系列_0891_子序列宽度之和
  • SpiderData 2019年2月23日 DApp数据排行榜
  • STAR法则
  • sublime配置文件
  • 记录一下第一次使用npm
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 前端代码风格自动化系列(二)之Commitlint
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​ubuntu下安装kvm虚拟机
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • $.proxy和$.extend
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (转)关于pipe()的详细解析
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • (转)我也是一只IT小小鸟
  • .mysql secret在哪_MYSQL基本操作(上)
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .net core使用ef 6
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • @基于大模型的旅游路线推荐方案
  • [20150321]索引空块的问题.txt
  • [Android Studio 权威教程]断点调试和高级调试
  • [Android] Upload package to device fails #2720
  • [BJDCTF2020]The mystery of ip
  • [JS]变量
  • [LeetCode] Copy List with Random Pointer 拷贝带有随机指针的链表
  • [MAUI]集成高德地图组件至.NET MAUI Blazor项目