热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

IT兄弟连HTML5教程CSS3属性特效3D变换2

3perspective-origin景深基点perspective-origin景深基点属性时3D变形中另一个重要属性,主要用来决定perspective属性的源点角度。它实

5f16a58a57bc47108e1c532aebeafd05.jpg

 

3  perspective-origin景深基点

perspective-origin景深基点属性时3D变形中另一个重要属性,主要用来决定perspective属性的源点角度。它实际上设置了X轴和Y轴位置,在该位置观看者好像在观看该元素的子元素。

perspective-origin属性的使用语法如下:

perspective-origin: tx ty;

该属性的默认值为“50%  50%”,可以设置一个值,也可以设置两个长度值。其取值及描述如表3

表3 perspective-origin属性值及描述

 

image/20191127/a17cf92096272be4d6ab2496b9ddf8f4.png

 

同perspective一样,perspective-origin属性必须定义在父元素上。通常perspective-origin属性本身不做任何事情,它必须被定义在设置了perspective属性的元素上。换句话说,perspective-origin属性需要与perspective属性结合使用,以便将视点移至元素的中心以外位置。

同样,我们通过一个小案例来加深一下对perspective-origin的印象。代码如下:

image/20191127/d46c3618a85115349fd53e583a7065bf.png

 

在这里我们也设置了两个div,每个div里包含一张图片。每个div都建立3D空间,设置600px的景深。不同的是,我们改变了第二个div的景深基点为“left top”,第一张使用默认的景深基点为“50% 50%”。在浏览器中查看,运行效果如图2所示:

image/20191127/6abee3a203fa6754805729004a326fe5.jpeg

图2  perspective-origin景深基点

 

从上图,我们可以看出两张图的差别。设置景深基点相当于换了位置查看这个3D变化。

 

4  3D位移

在CSS3中3D位移主要包括两种函数translateZ()和translate3d()。translate3d()函数使一个元素在三维空间移动。这种变形的特点是,使用三维向量的坐标定义元素在每个方向移动了多少。其基本语法如下:

translate3d(tx,ty,tz)

其属性取值及说明如表4:

表4  translate3d(tx,ty,tz)属性值取值及说明

image/20191127/5ea8b30fc572fe7a432497647300a77d.png

 

一起来看一个简单的实例,加深对translate3d()的理解,代码如下:

image/20191127/127a2a2bfa67eba83484ea483c117e15.png

 

这里我们为第二张图片使用translate3d()方法,让它相对于之前的位置偏移,横向偏移10px,纵向偏移10px,Z轴位移偏量为-100px。在浏览器中查看,运行效果如图3所示:

image/20191127/f8efc1b76d7622616eda7fdcb991a3ba.jpeg

图3  translate3d() 3D位移

 

从上图,我们可以看出两张图的差别。第二张图位移发生了改变,向右偏移了10px,向下偏移了10px,向后偏移了100px。

在CSS3中3D位移除了translate3d()函数之外还有translateZ()函数。translateZ()函数的功能是让元素在3D空间沿Z轴进行位移,其基本使用语法如下:

translateZ(t)

t指的是Z轴的向量位移长度。

使用translateZ()函数可以让元素在Z轴进行偏移,当其为负值时,元素在Z轴越移越远,导致元素变得较小。反之,当其值为正值是,元素在Z轴越来越近,导致元素变得较大。将上例CSS代码的translate3d()方法替换成translateZ()方法,代码如下:

image/20191127/7e79059009a3c83d5eb310d13d7807bf.jpeg

 

这里我们为第二张图片使用translateZ()方法,Z轴位移偏量为-100px。在浏览器中查看,运行效果如图4所示:

image/20191127/7d450db71d0ace679b26e0a5110227fe.jpeg

图4  translate3d() 3D位移

 

translateZ()函数仅让元素在Z轴进行位移,在实际使用中等同于translate3d(0,0,tz)。


推荐阅读
  • 深入理解ExtJS:从入门到精通
    本文详细介绍了ExtJS的功能及其在大型企业前端开发中的应用。通过实例和详细的文件结构解析,帮助初学者快速掌握ExtJS的核心概念,并提供实用技巧和最佳实践。 ... [详细]
  • 推荐几款高效测量图片像素的工具
    本文介绍了几款适用于Web前端开发的工具,这些工具可以帮助用户在图片上绘制线条并精确测量其像素长度。对于需要进行图像处理或设计工作的开发者来说非常实用。 ... [详细]
  • 气象对比分析
    本文探讨了不同地区和时间段的天气模式,通过详细的图表和数据分析,揭示了气候变化的趋势及其对环境和社会的影响。 ... [详细]
  • 本文详细介绍了如何在Android 4.4及以上版本中配置WebView以实现内容的自动高度调整和屏幕适配,确保中文显示正常,并提供代码示例。 ... [详细]
  • 本文详细比较了CSS选择器和XPath在Selenium中通过页面结构定位元素的优劣,并提供了具体的代码示例,帮助读者理解两者在不同场景下的适用性。 ... [详细]
  • 本题要求在一组数中反复取出两个数相加,并将结果放回数组中,最终求出最小的总加法代价。这是一个经典的哈夫曼编码问题,利用贪心算法可以有效地解决。 ... [详细]
  • 本篇文章介绍如何将两个分别表示整数的链表进行相加,并生成一个新的链表。每个链表节点包含0到9的数值,如9-3-7和6-3相加得到1-0-0-0。通过反向处理链表、逐位相加并处理进位,最终再将结果链表反向,即可完成计算。 ... [详细]
  • CentOS 系统管理基础
    本文介绍了如何在 CentOS 中查询系统版本、内核版本、位数以及磁盘分区的相关知识。通过这些命令,用户可以快速了解系统的配置和磁盘结构。 ... [详细]
  • 本文详细探讨了 PHP 中 method_exists() 和 is_callable() 函数的区别,帮助开发者更好地理解和使用这两个函数。文章不仅解释了它们的功能差异,还提供了代码示例和应用场景的分析。 ... [详细]
  • Spring Boot 中静态资源映射详解
    本文深入探讨了 Spring Boot 如何简化 Web 应用中的静态资源管理,包括默认的静态资源映射规则、WebJars 的使用以及静态首页的处理方法。通过本文,您将了解如何高效地管理和引用静态资源。 ... [详细]
  • 本文探讨了C++编程中理解代码执行期间复杂度的挑战,特别是编译器在程序运行时生成额外指令以确保对象构造、内存管理、类型转换及临时对象创建的安全性。 ... [详细]
  • 本文详细介绍了如何解决 Microsoft SQL Server 中用户 'sa' 登录失败的问题。错误代码为 18470,提示该帐户已被禁用。我们将通过 Windows 身份验证方式登录,并启用 'sa' 帐户以恢复其访问权限。 ... [详细]
  • 程序员如何优雅应对35岁职业转型?这里有深度解析
    本文探讨了程序员在职业生涯中如何通过不断学习和技能提升,优雅地应对35岁左右的职业转型挑战。我们将深入分析当前热门技术趋势,并提供实用的学习路径。 ... [详细]
  • ListView简单使用
    先上效果:主要实现了Listview的绑定和点击事件。项目资源结构如下:先创建一个动物类,用来装载数据:Animal类如下:packagecom.example.simplelis ... [详细]
  • 本文详细介绍了一种高效的算法——线性筛法,用于快速筛选出一定范围内的所有素数。通过该方法,可以显著提高求解素数问题的效率。 ... [详细]
author-avatar
手机用户2602890925
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有