Web - CSS3过渡与动画

过渡

基本使用

transition过渡属性是css3浓墨重彩的特性,过渡可以为一个元素在不同样式之间变化自动添加补间动画。

过渡从kIE10开始兼容,移动端兼容良好,网页上的动画特效基本都是由JavaScript定时器实现的,现在逐步改为css3过渡。

transition属性有4个要素:过渡属性、动画时长、变化速度曲线、延迟时间,需要注意的是时间单位后面的s是不能省略的。

所有数值类型的属性,都可以参与过渡,比如:widthheightlefttopborder-radius

.box1 {width: 200px;height: 200px;background-color: orange;transition: width 5s linear 0s;margin-bottom: 10px;
}.box1:hover {width: 800px;
}

背景颜色和文字颜色都可以被过渡。

.box2:hover p {left: 1000px;
}.box3 {width: 200px;height: 200px;background-color: red;transition: background-color 1s linear 0s;margin-bottom: 10px;
}.box3:hover {background-color: green;
}

所有的变形(包括2D和3D)都能被过渡。

/**2D过渡*/
.box5 {width: 200px;height: 200px;background-color: orange;margin-bottom: 10px;transition: transform 1s linear 0s;
}.box5:hover {transform: scale(1.2) rotate(360deg);
}/**3D过渡*/
.box6 {perspective: 300px;width: 200px;height: 200px;border: 1px solid #000;margin-bottom: 10px;
}.box6 p {width: 200px;height: 200px;background-color: orange;transition: transform 1s linear 0s;
}.box6:hover p {transform: rotateX(360deg) rotateY(360deg);
}

如果要所有的属性都参数过渡,可以写all。

.box7 {width: 200px;height: 200px;background-color: orange;border-radius: 0;transition: all 1s linear 0s;
}
.box7:hover {width: 400px;height: 160px;background-color: green;border-radius: 50%;
}

过渡的四个小属性:

属性意义
transition-property那些属性要过渡
transition-duration动画时间
transition-timing-function动画变化曲线(缓动效果)
transition-delay延迟时间
缓动效果

transition的第三个参数就是缓动参数,也是变化速度曲线,常用的缓动参数:

1、linear

线性过渡,元素在过渡过程中以恒定的速度变化,没有加速或减速效果。

2、ease

默认的缓动函数,过渡开始时较慢,然后加速,最后再减速。这是一种自然的过渡效果,常用于大多数场景。

3、ease-in

过渡开始时较慢,然后逐渐加速,结束时速度最快。常用于强调进入效果。

4、ease-out

过渡开始时速度最快,然后逐渐减速,结束时最慢。常用于强调退出效果。

5、ease-in-out

过渡开始和结束时较慢,中间加速。是 ease 函数的更明显版本。

6、cubic-bezier

自定义贝塞尔曲线缓动函数。该函数接受四个参数,分别是贝塞尔曲线的两个控制点的 x 和 y 坐标,取值范围在 0 到 1 之间。

可以去网站https://cubic-bezier.com可以生成内赛尔曲线,可以自定义动画缓动参数。

.box {width: 100px;height: 100px;background-color: red;transition: width 2s cubic-bezier(0.42, 0, 0.58, 1);
}.box:hover {width: 200px;
}

7、steps()

.box {width: 100px;height: 100px;background-color: red;transition: width 2s steps(5, end);
}.box:hover {width: 200px;
}

动画

可以使用@keyframes来定义动画,keyframes表示关键帧,在项目上线前,要补上@-webkit-这样的私有前缀。

from表示起始状态,to表示结束状态。

@keyframes movelr {from {transform: translateX(0);}to {transform: translateX(1000px);}
}

定义动画之后,就可以使用animation属性调用动画,animation参数的属性依次是:动画名字、总时长、缓动效果、延迟。

animation第五个参数就是动画的执行次数,如果想永远执行可以写infinite

/**movelr 是定义的动画名称*/
.box2 {width: 200px;height: 200px;background-color: blue;animation: movelr 2s linear 0s infinite alternate;
}

如果想让动画的第2、4、6…偶数次自动逆行执行,那么要加上alternate参数即可。

.box2 {width: 200px;height: 200px;background-color: blue;animation: movelr 2s linear 0s infinite alternate;
}

如果想让动画停止在最后结束状态,那么要加上forwards

.box3 {width: 200px;height: 200px;background-color: green;animation: changeToCircle 1s linear 0s forwards ;
}

多关键帧动画实例如下:

.box4 {width: 200px;height: 200px;background-color: red;animation: changeColor 3s linear 0s alternate infinite;
}@keyframes changeColor {0% {background-color: red;}20% {background-color: yellow;}40% {background-color: blue;}60% {background-color: green;}80% {background-color: purple;}100% {background-color: orange;}
}

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

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

相关文章

Unity 高度可扩展的技能与多 Buff 框架详解

一、框架设计 1.1 核心思想 组件化设计: 将技能和 Buff 抽象为可复用的组件,通过组合不同的组件实现复杂的效果。 数据驱动: 使用 ScriptableObject 或 JSON 等数据格式定义技能和 Buff 的属性,方便配置和修改。 事件驱动: 利用 Unity 的事件系统或自…

编译和链接【一】

文章目录 编译和链接【一】从翻译单元到二进制文件 编译和链接【一】 在我大一的时候, 我使用VC6.0对C语言程序进行编译链接和运行 , 然后我接触了VS, VS code等众多IDE, 这些IDE界面友好, 使用方便, 例如…

图像锐化(QT)

如果不使用OpenCV,我们可以直接使用Qt的QImage类对图像进行像素级操作来实现锐化。锐化算法的核心是通过卷积核(如拉普拉斯核)对图像进行处理,增强图像的边缘和细节。 以下是一个完整的Qt应用程序示例,展示如何使用Qt…

迅雷下载的原理和使用协议的分析

迅雷作为一款广泛使用的下载工具,其核心原理是通过整合多种下载协议和资源分发技术来提升下载速度。以下是对其原理及协议的详细分析: 一、迅雷下载的核心原理 多协议混合下载(P2SP) P2SP(Peer-to-Server-Peer&#xf…

【动手学运动规划】5.4 二次规划问题:QP优化

站在天堂看地狱,人生就像情景剧;站在地狱看天堂,为谁辛苦为谁忙。 —武林外传 白展堂 🏰代码及环境配置:请参考 环境配置和代码运行! 在运动规划算法中, QP优化是非常常见的优化问题形式, 本节我们将进行介绍. 5.4.1…

Linux: ASoC 声卡硬件参数的设置过程简析

文章目录 1. 前言2. ASoC 声卡设备硬件参数2.1 将 DAI、Machine 平台的硬件参数添加到声卡2.2 打开 PCM 流时将声卡硬件参数配置到 PCM 流2.3 应用程序对 PCM 流参数进行修改调整 1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失&am…

ansible使用学习

一、查询手册 1、官网 ansible官网地址:https://docs.ansible.com 模块查看路径:https://docs.ansible.com/ansible/latest/collections/ansible/builtin/index.html#plugins-in-ansible-builtin 2、命令 ansible-doc -s command二、相关脚本 1、服务…

jmap使用

常用命令 jmap -heap PID jmap -histo PID | head -20 jmap -dump:formatb,fileheap_dump.hprof PID jmap 是 Java 开发工具包(JDK)提供的一个命令行工具,用于生成 Java 进程的内存映射信息。它可以帮助开发者分析 Java 堆内存的使用情况…

RabbitMQ 如何设置限流?

RabbitMQ 的限流(流量控制)主要依赖于 QoS(Quality of Service) 机制,即 prefetch count 参数。这个参数控制每个消费者一次最多能获取多少条未确认的消息,从而避免某个消费者被大量消息压垮。 1. RabbitMQ…

第四十八章:黄山之行:与小一的奇妙冒险

自从小泽泽满月酒过后,小冷一家的生活又恢复了往日的温馨与忙碌。小泽泽在家人的悉心照料下茁壮成长,而小冷和小颖也在工作与家庭之间努力平衡着。2024 年 11 月,秋意正浓,山林间五彩斑斓,空气中弥漫着清爽的气息。小冷…

基于 SpringBoot 和 Vue 的智能腰带健康监测数据可视化平台开发(文末联系,整套资料提供)

基于 SpringBoot 和 Vue 的智能腰带健康监测数据可视化平台开发 一、系统介绍 随着人们生活水平的提高和健康意识的增强,智能健康监测设备越来越受到关注。智能腰带作为一种新型的健康监测设备,能够实时采集用户的腰部健康数据,如姿势、运动…

2025.2.8 寒假综合训练赛2题解

A. 博弈 Link:P1290 欧几里德的游戏 博弈类的题目,首先考虑找找有什么性质,从而找到“必胜态”和“必败态”。 其中,面对“必胜态”不一定取胜(看个人操作的好坏),但面对“必败态”一定输&am…

docker离线安装及部署各类中间件(x86系统架构)

前言:此文主要针对需要在x86内网服务器搭建系统的情况 一、docker离线安装 1、下载docker镜像 https://download.docker.com/linux/static/stable/x86_64/ 版本:docker-23.0.6.tgz 2、将docker-23.0.6.tgz 文件上传到服务器上面,这里放在…

Spring Boot 中的日志配置

文章目录 Spring Boot 中日志配置的源码分析1. Spring Boot 日志框架的选择与自动配置2. 日志自动配置与默认行为3. 日志系统的核心组件:Logger 和 LoggerFactory4. 日志配置文件的解析配置日志级别配置日志输出格式和目标 5. 日志级别的控制自定义日志级别 6. 自定…

从零到一:我的元宵灯谜小程序诞生记

缘起:一碗汤圆引发的灵感 去年元宵节,我正捧着热腾腾的汤圆刷朋友圈,满屏都是"转发锦鲤求灯谜答案"的动态。看着大家对着手机手忙脚乱地切换浏览器查答案,我突然拍案而起:为什么不做一个能即时猜灯谜的微信…

CSS3+动画

浏览器内核以及其前缀 css标准中各个属性都要经历从草案到推荐的过程,css3中的属性进展都不一样,浏览器厂商在标准尚未明确的情况下提前支持会有风险,浏览器厂商对新属性的支持情况也不同,所有会加厂商前缀加以区分。如果某个属性…

2025.2.8——二、Confusion1 SSTI模板注入|Jinja2模板

题目来源:攻防世界 Confusion1 目录 一、打开靶机,整理信息 二、解题思路 step 1:查看网页源码信息 step 2:模板注入 step 3:构造payload,验证漏洞 step 4:已确认为SSTI漏洞中的Jinjia2…

c++初始

目录 一数据类型 1. 2.sizeof 3.布尔 4.字符串类型 二.数据输入与输出 1.输出 2.输入 三.运算 1.加减乘除取模,,--都一样 2.逻辑非与或,与C语言一样 3.比较运算符,与C语言一样 4.三目运算符(与C语言一样&a…

数字电路-基础逻辑门实验

基础逻辑门是数字电路设计的核心元件,它们执行的是基本的逻辑运算。通过这些基本运算,可以构建出更为复杂的逻辑功能。常见的基础逻辑门包括与门(AND)、或门(OR)、非门(NOT)、异或门…

HC32功能复用说明

目录 引脚有哪些功能如何选择功能代码 引脚有哪些功能 数据手册中,每一个引脚功能有至多64个,对应列Func0~Func63 其中,Func0 ~Func31在《表 2-1 引脚功能表》中列出 Func32~Func63在《表 2-2 Func32~63 表》中列出。 Func32~Func63中的功…