css过渡和2d详解及案例(案例在下方,不要着急)

本文重点:

 1、在2D变化使用过程中,有些需求需要两种或两种以上的变化同时使用,

值得注意的是尽量把位移变化放在最前面,把其他变化放在最后面,属性值中间用空格隔开;

因为其他变化放在前面会使位移变化出现很大的误差(切记)

正确写法如下:transform:translate(100px) rotate(90deg);

 2、所有变化都是以元素自身的中心点为变化原点,如有需求需要改变变化原点,请往下继续看;

过渡

css3的transition允许css的属性值在一定的时间区间内平滑地过渡。

这种效果可以在元素任何改变中触发,使元素变化以动画效果展现出来。

  1. transition-property:检索或设置对象中的参与过渡的属性

  2. transition-duration:检索或设置对象过渡的持续时间

  3. transition-delay:检索或设置对象延迟过渡的时间

  4. transition-timing-function:检索或设置对象中过渡的动画类型

简写:transition:all/具体属性值 运动时间s/ms 延迟时间s/ms 动画类型简写形式(匀速、加速等等)

2D

2D变换,是在一个平面对元素进行的操作。
可以对元素进行水平或者垂直位移、旋转或者拉伸

2D功能函数

1、2D位移 translate()

  • 将元素向指定的方向移动,类似于position中的relative(都占据空间)。

  • 水平移动:向右移动translate(tx,0)和向左移动translate(-tx,0);

  • 垂直移动:向上移动translate(0,-ty)和向下移动translate(0,ty);

  • 对角移动:右下角移动translate(tx,ty)、右上角移动translate(tx,-ty)、左上角移动translate(-tx,-ty)和左下角移动translate(-tx,ty)。

2、2D缩放scale()

  • 让元素根据中心原点对对象进行缩放。默认的值1。值大于0,小于1,使一个元素缩小;值大于1,让元素显得更大。

  • 缩放scale()函数和translate()函数的语法非常相似,他可以接受一个值,也可以同时接受两个值,如果只有一个值时,其第二个值默认与第一个值相等。例如,scale(1,1)元素不会有任何变化,而scale(2,2)让元素沿X轴和Y轴放大两倍。

  • scaleX():相当于scale(sx,1)。表示元素只在X轴(水平方向)缩放元素,其默认值是1。

  • scaleY():相当于scale(1,sy)。表示元素只在Y轴(纵横方向)缩放元素,其默认值是1。

3、2D旋转rotate()

  旋转rotate()函数通过指定的角度参数对元素根据对象原点指定一个2D旋转。单位为deg,它主要在二维空间内进行操作,接受一个角度值,用来指定旋转的幅度。如果这个值为正值,元素相对原点中心顺时针旋转;如果这个值为负值,元素相对原点中心逆时针旋转。

rotateX() 方法,元素围绕其 X 轴以给定的度数进行旋转
rotateY() 方法,元素围绕其 Y 轴以给定的度数进行旋转

4、2D倾斜skew()

  倾斜skew()函数能够让元素倾斜显示。它可以将一个对象以其中心位置围绕着X轴和Y轴按照一定的角度倾斜。
一个参数时:表示水平方向的倾斜角度;
两个参数时:第一个参数表示水平方向的倾斜角度,第二个参数表示垂直方向的倾斜角度

变形原点的改变方法:

transform-origin
transform-origin是变形原点,也就是该元素围绕着那个点变形或旋转,该属性只有在设置了transform属性的时候起作用;

默认变化的变化原点都在元素的中心点,本案例使变化原点进行了改变,案例使用了

元素在父元素中下左右居中,具体可访问https://www.cnblogs.com/piaoyi1997/p/12580560.html

案例效果图如下:

实现代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        /* 元素在父元素中下左右居中,具体可访问https://www.cnblogs.com/piaoyi1997/p/12580560.html */
        .dom_center{
            position: absolute;
            left: 0;right: 0;
            top: 0;bottom: 0;
            margin: auto;
        }
        .box3{
            width: 300px;
            height: 200px;
            background-color: sandybrown;
            margin: 100px auto;
            position: relative;
        }
        .box3 .dom3{
            width: 60px;
            height: 50px;
            transition: 1s;
            background-color: slateblue;
            transform-origin:right top;
        }
        .box3 .dom{
            width: 100px;
            height: 80px;
            border: #000 solid;
            border-width: 2px 0 2px 0;
            transition: 3s;
            transform: scaleX(0);
            transform-origin: left center;
        }
        .box3 .dom2{
            width: 80px;
            height: 100px;
            border: #000 solid;
            border-width: 0 2px 0 2px ;
            transition: 3s;  
            transform: scaleY(0);
            transform-origin:  center top;
        }
        
        .box3:hover .dom{           
            transform: scaleX(1);          
        }
        .box3:hover .dom2{
            transform: scaleY(1);
        }
        .box3:hover .dom3{            
            transform:translate(100px) rotate(90deg);          
        }
    </style>
</head>
<body>
    <div class="box3">
        <div class="dom3"></div>
        <div class="dom dom_center"></div>
        <div class="dom2 dom_center"></div>
    </div>
</body>
</html>
 
如果感觉对自己有帮助,麻烦点一下关注,会一直盒大家分享知识的,谢谢!!!

css过渡和2d详解及案例的更多相关文章

  1. css 之position用法详解

    css  之position用法详解: http://www.jb51.net/web/77495.html

  2. CSS定位属性Position详解

    CSS中最常用的布局类属性,一个是Float(CSS浮动属性Float详解),另一个就是CSS定位属性Position. 1. position:static 所有元素的默认定位都是:position ...

  3. Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例

    摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢!   “看看星空,会觉得自己很渺小,可能我们在宇宙中从来就是一个偶然.所以,无论什么事情,仔细想一 ...

  4. SQL Server 表的管理_关于事务的处理的详解(案例代码)

    SQL Server 表的管理_关于事务的处理的详解(案例代码) 一.SQL 事务 1.1SQL 事务 ●事务是在数据库上按照一定的逻辑顺序执行的任务序列,既可以由用户手动执行,也可以由某种数据库程序 ...

  5. SQL Server 表的管理_关于数据增删查改的操作的详解(案例代码)

    SQL Server 表的管理_关于数据增删查改的操作的详解(案例代码)-DML 1.SQL INSERT INTO 语句(在表中插入) INSERT INTO 语句用于向表中插入新记录. SQL I ...

  6. SQL Server 表的管理_关于表的操作增删查改的操作的详解(案例代码)

    SQL Server 表的管理_关于表的操作增删查改的操作的详解(案例代码) 概述: 表由行和列组成,每个表都必须有个表名. SQL CREATE TABLE 语法 CREATE TABLE tabl ...

  7. SQL Server 表的管理_关于事务操作的详解(案例代码)

    SQL Server 表的管理_关于事务操作的详解(案例代码) 1.概念 事务(transaction): 是将多个修改语句组合在一起的方法,这个方法中的所有语句只有全部执行才能正确完成功能.即要么全 ...

  8. DIV css中cursor属性详解-鼠标移到图片变换鼠标形状 (转)

    css中cursor属性详解-鼠标移到图片变换鼠标形状   语法: cursor : auto | all-scroll | col-resize| crosshair | default | han ...

  9. css样式继承规则详解

    css样式继承规则详解 一.总结 一句话总结:继承而发生样式冲突时,最近祖先获胜(最近原则). 1.继承中哪些样式不会被继承? 多数边框类属性,比如象Padding(补白),Margin(边界),背景 ...

随机推荐

  1. psql的时间类型,通过时间查询

    psql的时间类型,通过时间查询 psql有date/timestamp类型,date只显示年月日1999-01-08,而timestamp显示年月日时分秒 1999-01-08 09:54:03.2 ...

  2. java线程组

    1 简介 一个线程集合.是为了更方便地管理线程.父子结构的,一个线程组可以集成其他线程组,同时也可以拥有其他子线程组. 从结构上看,线程组是一个树形结构,每个线程都隶属于一个线程组,线程组又有父线程组 ...

  3. jQuery上传文件按钮美化

    效果图如下: 思路: 1:打开文件设置为透明,外面包一层标签,给标签设置颜色背景,给人点击浏览其实是点击打开文件的错觉.(给外标签相对定位,打开文件标签绝对定位). 2:点击浏览后,选择了文件,就把文 ...

  4. Vue2.0 【第二季】第1节 Vue.directive自定义指令

    目录 Vue2.0 [第二季]第1节 Vue.directive自定义指令 一.什么是全局API? 二. Vue.directive自定义指令 三.自定义指令中传递的三个参数 四.自定义指令的生命周期 ...

  5. Spark入门(三)--Spark经典的单词统计

    spark经典之单词统计 准备数据 既然要统计单词我们就需要一个包含一定数量的文本,我们这里选择了英文原著<GoneWithTheWind>(<飘>)的文本来做一个数据统计,看 ...

  6. 浅谈 HTTP中Get与Post的区别

    浅谈 HTTP中Get与Post的区别 存在的误区 有人说 HTTP 协议下的 Get 请求参数长度是有大小限制的,最大不能超过XX,而 Post 是无限制的,看到这里,我想他们定是看多了一些以讹传讹 ...

  7. ngzorro draw 第一次打开 ERROR TypeError: Cannot read property 'overlayElement' of undefined

    at NzDrawerComponent.push../node_modules/ng-zorro-antd/fesm5/ng-zorro-antd.js.NzDrawerComponent.trap ...

  8. Oracle设置和修改system和scott的口令,并且如何连接到system和scott模式下

    1.在Oracle数据库中,有个示例模式scott和系统模式system. 2.在安装数据库时只是设置了system的口令,即密码,如果忘记的话可以使用如下办法,首先打开sqlplus工具或者cmd命 ...

  9. jvm:内存结构(堆、方法区、程序计数器、本地方法栈、虚拟机栈)

    1.jvm内存结构 静态编译:把java源文件编译成字节码文件class,这个时候class文件以静态方式存在. 类加载器:把java字节码文件加载到内存中 方法区:将字节码放到方法区作为元数据(简单 ...

  10. leetcode 945. 使数组唯一的最小增量

    题目 给定整数数组 A,每次 move 操作将会选择任意 A[i],并将其递增 1. 返回使 A 中的每个值都是唯一的最少操作次数. 示例 1: 输入:[1,2,2] 输出:1 解释:经过一次 mov ...