【前端特效篇】过渡与动画

news2024/10/7 12:20:24

变形和动画都是前端开发过程中,用来提高用户体验的一种方式。增加一些动效,可以使页面看起来不那么枯燥无味。
在这里插入图片描述

一、变形 transform

transform 属性应用于元素的2D或3D转换。这个属性允许你将元素旋转,缩放,移动,倾斜等。

变形都是相对于自己本身原来的位置进行转换,原来的位置还占位,只是视觉上的变化。这点来看和相对定位有点类似。

在这里插入图片描述

1.1 2D 变形

2d中的坐标系:x 表示正方向向右 y表示正方向向下

  • translate(x,y) 偏移,值函数,两个参数分别为 x 方向和 y 方向偏移;如果只有一个值,就是代表向 x偏移

    translateX (x) X 方向偏移
    translateY (y) Y 方向偏移

    /* 向下偏移100px */
    /* transform: translateY(100px); */
    /*  向右偏移200px*/
    /* transform: translateX(200px); */
    /* 同时设置向下偏移100px向右偏移200px */
    /* transform: translate(200px,100px) */
    
    transform: translate(100px);
    
  • scale(x,y) 缩放,两个参数分别为x方向和y方向缩放值;如果只有一个值,代表元素两个方向的缩放值

    scaleX(x) X 方向缩放

    scaleY(y) Y 方向缩放

    /* x方向缩小一半 */
    /* transform: scaleX(0.5); */
    /* y方向变大一半 */
    /* transform: scaleY(2); */
    
    /* 设置x、y方向的缩放值 */
    /* transform: scale(0.9,0.5); */
    
    transform: scale(0.5);
    
  • skew(x deg, y deg); 倾斜,定义沿着 X 和 Y 轴的 2D 倾斜转换

    skewX()

    skewY()

    /* x方向倾斜30deg */
    /* transform: skewX(30deg); */
    
    /* y方向倾斜30deg */
    /* transform: skewY(60deg); */
    
    transform: skewX(30deg);
    
  • rotate(z deg) 旋转 定义 2D 旋转,在参数中规定角度

    rotateX() x轴旋转

    rotateY() y轴旋转

    rotateZ() z旋转,平面旋转

    /* x轴旋转30deg */
    /* transform: rotateX(30deg); */
    /* y轴旋转30deg */
    /* transform: rotateY(60deg); */
    
    transform: rotateZ(60deg)
    

1.2 改变变形中心点

transform-origin 属性允许您更改转换元素的位置

transform-origin: x-axis y-axis z-axis;
  • x-axis 定义视图被置于 X 轴的何处。可能的值:left center right 固定值 百分比
  • y-axis 定义视图被置于 Y 轴的何处。可能的值:top center bottom 固定值 百分比
  • z-axis 定义视图被置于 Z 轴的何处。可能的值:固定值

在这里插入图片描述

注:2D转换元素可以改变元素的X和Y轴。 3D转换元素,还可以更改元素的Z轴。

1.3 改变变形类型

transform–style 属性指定嵌套元素是怎样在三维空间中呈现,2D 变形 和 3D 变形,属性值如下

  • flat 表示所有子元素在2D平面呈现
  • preserve-3d 表示所有子元素在3D空间中呈现

在这里插入图片描述

1.4 3D 变形相关属性和属性值

3d中的坐标系:x 表示正方向向右 y表示正方向向下 z表示垂直于屏幕

  • perspective 景深,表示距离屏幕多少像素
  • translate3d(x,y,z)
  • translateZ(z) 属性表示元素沿着自身Z轴移动了多少像素
  • scaleZ(z deg)

注意:3d 变形需要配合景深使用,给父元素添加 perspective 属性

父元素{
	prespective: 101px; // 表示父元素距离屏幕101px的距离,类似于看戏时确定舞台的距离
}
子元素{
	transform: translateZ(100px); // 表示子元素从距离屏幕101px的位置,移动到了距离屏幕1px的位置
}

1.5 背面不可见

backface-visibility : visible(默认,背面可见) | hidden(背面不可见);

二、过渡 transition

过渡是从一种效果到另外一种效果的演变,需要触发条件,如:鼠标滑过 获取焦点 点击事件等等

两个必要的条件:

​ 过渡属性 transition-property

​ 过渡的时间 transition-duration

除了以上两个属性:

​ 过渡的作用曲线 transition-timing-function

​ 过渡的延迟时间 transition-delay

三、动画 animation

动画也是从一种效果过渡到另外一种,这个不需要任何触发条件,自动播放;

两个必要条件

​ animation-name 动画的名称

​ animation-duration 动画的过渡时间

其他属性

animation-delay 动画延迟播放的时间

animation-timing-function 动画的播放速率,属性值同transition-timing-function

animation-iteration-count 设置动画的播放次数;可以给数字,如果设置为infinity 代表无限次播放

animation-direction 设置动画播放的方向,属性值如下:

​ normal 正向播放

​ reverse 反向播放

​ alternate 奇数次正向播放,偶数次反向播放

​ alternate-reverse 偶数次正向播放,奇数次反向播放

animation-fill-mode 属性规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式 属性值 forwards 保留动画最后一帧效果

动画集规则

@keyframes name{ 
	from{}  
	to{}
}

注意:由于form…to 过渡效果太少,一般我们会利用百分比 0% , 10%,…,90%,100%呈现更加细腻的动画过程

@keyframes name{
    0%{}
    10%{}
    ...
    90%{}
    100%{}
}

动画简写属性

animation:name duration delay timing-function iteration-count direction;

控制动画的播放状态

animation-play-state: running (默认运动) | paused (停止) ; 

如:设置鼠标滑过容器停止动画的播放

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

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

相关文章

opencloudos安装nginx新版本

opencloudos基本上完全兼容centos的操作,源管理方式也适用的yum。 ​ 装了一个opencloudos之后,想安装一下nginx。 默认的情况下安装使用: yum install nginx不过默认安装的是 1.14 版本,这个版本有几个 http 的漏洞&#xff…

【JUC进阶】03. Java对象头和内存布局

1、前言 为了后面更好的学习锁优化以及运作过程,需要我们对HotSpot虚拟机的Java对象内存布局有一定的了解,也作为技术储备。 2、对象的内存布局 在HotSpot虚拟机中,对象在堆内存中存储的布局可以划分为三个部分:对象头&#xf…

逍遥子All in阿里云,阿里“压舱石”与“秘密武器”接任

激荡中的阿里,又宣布了组织变革的最新进展:张勇将在2023年9月10日卸任阿里巴巴控股集团董事会主席兼CEO职务,此后将专职担任阿里云智能集团董事长兼CEO。蔡崇信将接任阿里集团董事长,吴泳铭出任阿里集团CEO并继续兼任淘天集团董事…

Linux 学习记录37(C高级篇)

Linux 学习记录37(C高级篇) 本文目录 Linux 学习记录37(C高级篇)一、常见的shell解析器二、变量1. shell脚本外部传参2. 输入输出(1. 输出(2. 输入 3. 命令置换符4. shell中的数组 三、shell中的算数运算1. (())运算2. $[ ]运算3. let运算4. expr指令(1.数据运算(3. 字符运算 四…

STM32单片机(七)ADC模拟数字转换器----第二节:ADC模数转换器练习(AD单通道和AD多通道)

❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要…

港科夜闻|香港科大(广州)INNOTECH创科嘉年华暨周年庆典隆重举行

关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、香港科大(广州)INNOTECH创科嘉年华暨周年庆典隆重举行。6月16日,在《广州南沙深化面向世界的粤港澳全面合作总体方案》印发一周年之际,作为《南沙方案》发布后落成的第一个重大项目,香…

深入理解生成式AI技术原理:初识生成式AI

📣📣📣📣📣📣📣 🎍大家好,我是慕枫 🎍前阿里巴巴高级工程师,InfoQ签约作者、阿里云专家博主,一直致力于用大白话讲解技术知识 &#x…

三菱plc编程协议开发记录

目录 1 协议介绍 2 测试报文 3 PLC服务端仿真 4 java测试代码 1 协议介绍 Fx_Serial 通过Fx编程口协议连接三菱FX0N、FX1N、FX2N、FX3U FX3G、FX3S系列PLC。协议的详细介绍文档见附件“FX编程口协议.pdf”。 2 测试报文 组装各种类型报文测试,见附件“报文.xls…

Spring MVC框架步骤

目录 前言1. 配置开发环境2. 创建一个新的Maven项目3. 配置Web.xml文件4. 创建控制器类5. 创建视图6. 配置视图解析器7. 运行应用程序8. 测试应用程序 前言 Spring MVC是一种基于Java的Web应用程序开发框架,它可以帮助开发人员构建灵活、健壮和可扩展的Web应用程序…

【MongoDB】三、使用Java连接MongoDB

【MongoDB】三、使用Java连接MongoDB 实验目的实验内容练习1、开启Eclipse,创建Java Project项目,命名为Mongo12、添加项目依赖的jar包3、创建类MongoDemo4、连接数据库5、查看集合6、创建集合7、删除集合8、查看文档9、插入文档10、更新文档11、删除文档…

hive/spark数据倾斜解决方案

Hive数据倾斜以及解决方案 1、什么是数据倾斜 数据倾斜主要表现在,mapreduce程序执行时,reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理时间很长,这是因为某一个key的条数比其他…

stm32驱动RFID高频读卡器读取IC卡

stm32驱动RFID读卡器读取IC卡 1.介绍RFID2.RFID控制指令2.1 读IC卡号2.2 读IC卡数据块2.3 写数据到IC卡数据块2.4 读取RFID读卡器用户数据2.5 向RFID读卡器写入用户数据 3.代码实例3.1 rfid.c 源文件3.2 rfid 头文件 4. 结语 1.介绍RFID RFID(Radio-Frequency Iden…

篮球比赛管理系统的设计与实现(论文+源码)_kaic

摘要 迅猛发展并日益成熟的网络已经彻底的影响了我们的方方面面。人们也确实真切的体会到了网络带给我们的便捷。本网站的设计理念在于作为一个天津大学生台球联盟推广网,就是能够尽可能详细地展示、介绍台球联盟资讯信息,播放视频,同时为广…

关于Eclipse代码断点调试与相关快捷键

关于Eclipse代码断点调试与相关快捷键 功能快捷键 首先关于DeBug测试的快捷键: Debug F5:Step Into(debug) F6:Step over(debug) F7:Step return(debug) F8&a…

化妆品行业知识分享

目录 一、产品基本信息 1.产品的组成 2. 产品分类 3.常见术语 二、产品特性 1.生产特性 2.销售特性 3.采购特性 4.研发特性 三、行业痛点与解决方案 1.行业主要存在的痛点 2.日常业务解决方案: 3.供应商管理解决方案: 四、总结 一、产品基本信息 1.产品的…

C++基础(13)——STL(stack、queue、list)

前言 本文主要介绍C中STL中的stack、queue和list容器 7.5:stack容器 7.5.1:stack容器基本概念 栈中只有顶端元素才可以被外界调用,因此栈不允许有遍历的行为,其中string、vector、deque都可以遍历 7.5.2:栈的常用接…

AT32F437网络通信

网络时间长了ping不通,解决方法 https :// https://hjha.bar:8443/vod 123456789 /play/id/32052/sid/1/nid/1.html

PYTHON强制升级openpyxl方法--已验证有效

当执行for i, row in enumerate(worksheet.iter_rows(min_row1, max_rowworksheet.max_row,values_onlyTrue)) 出现以下错误时:TypeError: iter_rows() got an unexpected keyword argument ‘values_only’ 说明openpyxl版本过低,需要升级,当…

指令模板:采访大纲生成 | AIGC实践

最近收获了一些朋友的谬赞,说我“执行力太强了”,可以持续输出内容。 呃,其实吧,这些素材都是从我的实际工作和生活中来的,只是稍加整理而已。 要说起来,AIGC的出现已经完全改变了我的工作方式。在遇到问题…

《中国多媒体与网络教学学报》简介及投稿邮箱

《中国多媒体与网络教学学报》简介及投稿邮箱 中国多媒体与网络教学学报 创刊于2002年,是经国家新闻出版总署批准的中央级电子期刊,是国内最早以多媒体形式发表中小学信息化教学改革前沿成果的学术期刊群,是教育部重点成果的发表平台之一,由教育部主管、清华大学主…