CSS3 Perspective

一 、在元素的父元素上使用

在父元素上使用Perspective属性可以使用透视投影视图,在父元素上加上:

perspective:400px

表示相机距离屏幕位置为400px。默认相机对准父元素的中心,要重设相机的焦点可以使用:

perspective-origin: 30% 70% 50%

表示相机的焦点在x轴(距原点)30%,y轴70%,z轴50%处。

二、在元素上使用

在元素上使用perspective属性可以达到正交投影视图效果。在元素上加上:

transform: perspective(400px)

三、不使用perspective,用2D变换实现伪3D效果

在屏幕上所谓3D效果本质上还是2D效果,只不过这种2D效果通过消隐和明暗处理,投射到屏幕上,看起来像是真的有一个物体存在一样。

所以,对于一些简单的3D动画,只有有限的状态,其实可以使用2D的变换去实现,以减少编程的困难。

比如下面这种,点击后延切线方向旋转90度的效果:

这里写图片描述

demo

如果要3D来做,可以用perspective实现正交投影,然后用3D旋转来实现,遗憾的是,我一下午都没旋转正确。用2D实现起来就很简单,看代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/429974.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

状态模式案例分析

需求 初始状态下,【暂停按钮】不可点,所有数轴可调: 点击【动态波】后,【暂停按钮】可点,所有数轴可调: 点击【暂停按钮】后,“暂停”变为“播放”,所有数轴不可调: 分析需求 上面…

Linux系统IP地址

1、IP地址概述 2、配置IP地址 查看IP地址 在网卡上绑定一个IP地址 同一张网卡上绑定多个IP 绑定一块网卡设备 修改或删除IP地址 IP地址概述 这里不多赘述,参考《计算机网络》课程。 配置IP地址 [rootweekend110 ~]# ifconfigeth0    Link encap:Ethernet HWadd…

qwidget多个窗口同步_Linux命令screen—终端切换,工作环境保存,画面同步,防断网...

Screen基础Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。创建一个新的窗…

Linux文件基本操作

使用declare命令创建一个变量名为 tmp 的变量: 使用号赋值运算符为变量 tmp 赋值为 dunzhu: 读取变量的值,使用echo命令和$符号($符号用于表示引用一个变量的值,初学者经常会忘记输入) 在dunzhu家目录创建一…

DES 加密 解密

EncryptUtil feiyangklDES 一行代码完成DES加密,加密模式 DES CBC DEMO GIF DEMO 简介 最近项目中用到DES加密,在这里整理成篇,供大家参考阅读,在使用该demo过程中,你可能会遇到一些问题,首先你需要看一下…

markdown绘图插件----mermaid简介

作者:黄永刚 mermaid简介 当撰写文档的时候,对于流程图的生成大多使用Visio等繁重的工具,没有一种轻便的工具能够画图从而简化文档的编写,就像markdown那样。 mermaid解决这个痛点,这是一个类似markdown语法的脚本语言…

Java NIO 教程

NIO 概述 NIO有三个核心组件: 通道(Channels)缓冲器(Buffers)选择器(Selectors) 实际上,NIO的组件和类远不止这三个,但这个三个组件是核心。至于其它组件,…

threejs相机和渲染器

渲染器 渲染器其实代表的是canvas标签。 渲染器的类型 WebGLRender 使用WebGL来渲染图形,速度较快,但是有些机器不支持WebGL。 CanvasRender 使用canvas2d来渲染图形,在较老的版本上,主要是用来渲染2D图形。现在这个渲染器在…

threejs概览

threejs术语和概念 threejs的API很长,有很多概念和术语,理解了这些概念和术语,才能更好的使用threejs。这些概念和术语都藏在API右侧的大纲中,下图简单整理了一下这些概念: 这些概念又分为四个大类(见上图…

leetcode数组汇总_[LeetCode] 300. 最长上升子序列

题目链接: https://leetcode-cn.com/problems/longest-increasing-subsequence难度:中等通过率:43.0%题目描述:给定一个无序的整数数组,找到其中最长上升子序列的长度。示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释:…

threejs创建平面几何形状

创建平面几何形状 平面几何形状有三种:点,线,面三种,下面说说用threejs创建这几种形状的方法。 创建点 创建点可以使用Points类。 function createPoints(){//创建一个Geometry,并添加点let geometry new THREE.G…

threejs精灵(Sprite)

Sprite精灵 Sprite叫精灵,计算机图形学中,精灵指包含于场景中的二维图像或动画(wiki)。在threejs中,这样说明Sprtite(doc) : A sprite is a plane that always faces towards the camera , ge…

threejs加载3D模型例子

加载3D模型 首先要引入ColladaLoader加载器,Collada是一个3D模型交换方案,即不同的3D模型可以通过Collada进行相互转换,言外之意,threejs可以使用Collada将3D模型的数据转换成自己支持的格式,从而在浏览器上渲染出来。…

threejs纹理

纹理 纹理用来表现物体的细节。理论上可以将物体的每个细节建模出来,但是这样时间成本和性能成本都太高,因此,将物体的一些细节用纹理来表示。 图片纹理 图片纹理直接在物体表面应用图片。可以使用TextureLoader类的load方法来加载纹理。 …

threejs对象拾取

对象拾取 对象拾取也就是要获得鼠标事件发生位置的图形对象。在threejs中,是通过Raycaster 对象来拾取对象的,ray是射线,caster是投射器,从字面上即可理解其工作原理是:从某个方向发射一条射线,穿过鼠标所…

threejs指定对象旋转中心

指定对象旋转中心 默认情况下,对象的旋转中心都是自身的中心。对于组对象而言,也是如此。因此,可以利用这个特点,实现对象绕任何点旋转,也就是指定旋转中心。比如我们想要下图的对象绕A点旋转 我们可以添加我们的对…

threejs设置对象层次

设置层次 threejs提供了层次的支持。和相机处于同一层次的对象可见,否则不可见。在threejs中,最多可以设置32层,默认的层次是1。层次在有些系统中很有用,可以将不同的模式的对象设成不同的层次,这样,切换模…

Text段、Data段和BSS段

不同的compiler在编译的过程中对于存储的分配可能略有不同,但基本结构大致相同。 大体上可分为三段:Text段、Data段和BSS段。 text段用于存放代码,通常情况下在内存中被映射为只读,但data和bss是可写的。 数据存放通常分成如下几个…

threejs渲染器剔除模式

渲染器剔除模式 渲染器可以设置成舍弃某些面,如前面、背面等,在【WebGLRenderer Constants】中对此有说明。默认情况下,是剔除掉背面,也就是背对着相机的面。下面看看例子: 首先创建一个正方形,给每个面不…

threejs路径

路径 引用百度百科的解释: 路径通常指存在于多种计算机图形设计软件中的以贝塞尔曲线为理论基础的区域绘制方式。路径在Canvas、SVG上都有相关定义,一般用来创建形状。在threejs中,也可以用来创建形状,除此之外,还可…