transform-origin学习笔记之旋转与基点的关系
来源:互联网 发布:参加java培训班有用吗 编辑:程序博客网 时间:2024/05/17 23:47
transform是CSS3里的变换属性,常用的有translate(平移)、rotate(旋转)、skew(倾斜)、scale(缩放)方法。而transform-origin并不是transform的属性值,其具有独立i的语法,但值得注意的是,transform-origin必须配合transform来使用,这个从名字也可以看得出来,就是给transform设置的各种动作设置一个参考点。默认情况下,元素的动作参考点为元素盒子的中心。transform可以设置九个位置的值,水平方向有left | center | right 三个值,垂直方向也有三个,分别是 top | center |bottom ,故一共有九个。
请看示例:
一.2D情况下:
html源码:
<nav><div></div></nav>
css源码:
nav{width: 200px;height: 200px;background-color: blue;}div,div::before{ width: 100px; height: 50px; background-color: red; border-top-left-radius: 25px; border-top-right-radius: 25px; position: absolute; top: 75px;}div{margin-left: 50px;}div::before{content: "";display: block;top:0px;left: 0px;transform: rotate(45deg); background-color: yellow;}效果如图:
分别修改基点为左上(transform-origin:left top),
左transform-origin:(left);
上(transform-origin:top);
中(transform-origin:center center);
并观察元素位置。
当只设置一个值时,另一方向默认值为center。
二.3D情况下:
在三维情况下,这里只针对rotateX、rotateY、rotateZ几个常用的方法做个记录。以rotateX为例;
html源码:
<nav><div>1</div><div>2</div><div>3</div></nav>css源码:
nav{width: 500px;height: 500px;border: 2px solid black;transform-style: preserve-3d;animation: aaa 5s infinite;}nav:hover{animation-play-state: paused;}div{width: 200px;height: 200px;position: absolute;top: 150px;left: 150px;opacity: 0.6;text-align: center;line-height: 200px;font-size: 100px;color: white;}div:nth-of-type(1){background: red;}div:nth-of-type(2){background: yellow;transform: translateZ(-200px) rotate(180deg);}div:nth-of-type(3){background: green;transform: rotateX(90deg);transform-origin: bottom;}@keyframes aaa {0% {transform: translateZ( -100px) rotateX( 0deg) rotateY( 0deg);}100% {transform: translateZ( -100px) rotateX( 90deg) rotateY( 90deg);}为了能直观地观察,在CSS里面添加了一段动画。下面是以第三个DIV为例,transform-origin分别为bottom,center以及top的效果。
由于第三个DIV是从第一个DIV处变换而来,从上图可知,当div沿X轴旋转时,从X轴正方向往负方向看去,DIV块是做逆时针旋转。基点的top|center|bottom值在三维空间设定的是旋转轴的位置分别位于顶部,中间和底部。同理,当沿Y轴旋转时,transform-origin设置的分别是轴在左边、中间和右边。前面说过,transform最多能取两个值,一个水平值,一个垂直值。在二位空间中的旋转,放到三维空间来看实际上是沿着Z轴旋转,此时能取9个值,而当沿X轴旋转时,水平方向的取值失效,只需设置垂直方向的值即可;同理,沿Y轴旋转时,垂直方向的取值失效,只需设置水平方向的值即可,这两种情况都只有三个可能的取值。
- transform-origin学习笔记之旋转与基点的关系
- transform-origin(改变元素基点)
- css3改变元素基点transform-origin
- transform-origin CSS3 旋转
- 【CSS3】transform-origin以原点进行旋转
- H5学习笔记之Transform
- Unity Transform.Find与Transform.FindChild的关系?
- CSS3 transform-origin属性之初理解
- CSS3变形之transform-origin属性
- CSS3形变——transform与transform-origin画时钟
- CSS3形变——transform与transform-origin画时钟
- CSS3形变——transform与transform-origin画时钟
- CSS3形变——transform与transform-origin画时钟
- CSS3形变——transform与transform-origin画时钟
- CSS3形变——transform与transform-origin画时钟
- CSS3形变——transform与transform-origin画时钟
- CSS3形变——transform与transform-origin画时钟
- CSS3形变——transform与transform-origin画时钟
- linux之如何在任意目录执行我常用的脚本文件
- python学习笔记——控制流(if,while,for,break,continue,模拟登录小程序实例)
- SUSELinux安装weblogic-db2-IBM
- java最长公共字串
- heroku command
- transform-origin学习笔记之旋转与基点的关系
- 18位身份证号码校验
- int const 与 const int区别 以及指针相关
- cocoapods安装与使用
- python---购物车
- caffe的solver的参数的含义和设置
- Python中字段抽取、字段拆分、记录抽取
- C++ 数组
- Spring框架HelloWorld程序