Web前端开发 - 4 - CSS3动画

CSS3动画

    • 一、 设计2D变换
    • 二、 设计3D变换
    • 三、 设计过渡动画
    • 四、设计帧动画

一、 设计2D变换

transform : none | <transform-function>
/* 
<transform-function> 设置变换函数,可以是一个或多个变换函数列表。函数包括:
martrix(x缩放,x倾斜,y倾斜,y缩放,x移动,y移动): 定义矩阵变换,即基于X和Y坐标重新定位元素的位置
translate(): 移动元素对象,即基于X和Y坐标重新定位元素
scale(): 缩放元素对象,可以使任意元素对象尺寸发生变化,取值包括正数和负数,以及小数
rotate(): 旋转元素对象,取值为一个度数值
skew(): 倾斜元素对象,取值为一个度数值transform-origin : 两个参数,值为百分比、em、px等或者left/center/right/top/midden/bottom等
*/

在这里插入图片描述

二、 设计3D变换

/* 3D变换函数
3D位移:translateZ() | translate3d() 
3D旋转:rotaleX() | rotateY() | rotateZ() | rotate3d()
3D缩放:scaleZ() | scale3d()
3D矩阵:matrix3d()
*/

在这里插入图片描述
在这里插入图片描述

三、 设计过渡动画

/* transition
设置过渡属性transition-property : none | all
设置过渡时间transition-duration : <time>
设置延迟时间transition-delay : <time>
设置过渡动画类型transition-timing-function : 
· ease : 平滑过渡
· linear : 线性过渡
· ease-in : 由慢到快
· ease-out : 由快到慢
· ease-in-out : 由慢到快再到慢
· cubic-bezier : 特殊的立方贝塞尔曲线效果设置触发方式:鼠标时间或状态定义动画,如CSS伪类和Javascript事件
- CSS动态伪类  :link | :visited | :hover | :active | :focus
- Javasctipt事件: click | focus | mousemove | mouseover | mouseout等
- CSS3媒体查询
*/

在这里插入图片描述

四、设计帧动画

/* animation 通过定义多个关键帧以及定义每个关键帧中元素的属性值来实现更为复杂的动画效果
设置关键帧 @keyframes
@keyframes animationname {keyframes-selector {css-styles;}
}设置动画属性
定义动画名称animation-name : none | IDENT
定义动画时间animation-duration : <time>
定义动画类型animation-timing-function : ease | linear | ease-in | ease-out | ease-in-out | cubicbezier
定义延迟时间animation-delay : <time>
定义播放次数animation-iteration-count : infinite | <number>
定义播放方向animation-direction : normal | alternate(偶数次向前播放,奇数次向反方向播放)
定义播放状态animation-play-state : paused | running (Javsscript脚本中用法:object.style.animationPlayState="paused")
定义播放外状态animation-fill-mode : none | forwards | backwards | both
*/
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="stylesheet" href="a.css"><title>Document</title>
</head>
<body><div id="wrap"><div id="box"></div></div>
</body>
</html>
#wrap {     /* 定义运动轨迹包含框   */position: relative;  /* 定义定位包含框,避免小盒子跑到外面运动 */border: solid 1px red;width: 250px;height: 250px;
}#box {  /* 定义运动小盒的样式  */position: absolute;left: 0;top: 0;width: 50px;height: 50px;background: #9eb6e6;border-radius: 8px;box-shadow: 2px 2px 2px #999;/* 定义帧动画:动画名称为ball,动画时长5秒,动画类型为匀速渐变,动画无限播放 */animation: ball 5s linear infinite;
}/* 定义关键帧:共包含5帧,分别总时长0%,25%,50%,75%,100%的位置 */
/* 每帧中设置动画属性为left和top,让它们的值匀速渐变,产生运动动画 */
@keyframes ball {0% {left: 0; top: 0;}25% {left: 200px; top: 0;}50% {left: 200px; top: 200px;}75% {left: 0; top: 200px;}100% {left: 0; top: 0;}
}

在这里插入图片描述

<div class="ball"></div>
/* 启动运动的小球,并定义动画结束后返回 */
.ball {width: 50px;height: 50px;background: #9eb6e6;border-radius: 100%;box-shadow: 2px 2px 2px #999;animation: ball 1s ease backwards;
}/* 定义小球水平运动关键帧 */
@keyframes ball {0% {transform: translate(0,0);}100% {transform: translate(400px);}
}

在这里插入图片描述

  • 翻转广告
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="stylesheet" href="a.css"><title>Document</title>
</head>
<body><div class="wrapper"><div class="item"><img src="../images/1.jpg" alt="" width="345px" height="186px"><span class="information"><img src="../images/2.jpg" alt="" width="345px"  height="186px"></span></div></div></body>
</html>
/* 定义包含框样式 */
.wrapper {display: inline-block;width: 345px;height: 186px;margin: 1em auto;cursor: pointer;position: relative;/* 定义3D元素距视图的距离 */perspective: 4000px;
}/* 定义旋转元素样式:3D动画,动画时间0.6秒 */
.item {height: 186px;transform-style: preserve-3d;transition: transform .6s;
}/* 定义鼠标经过时触发动画,并定义旋转形式 */
.item:hover {transform: translateZ(-50px) rotateX(95deg);
}
.item:hover img {box-shadow: none;border-radius: 15px;
}
.item:hover .information {box-shadow: 0px 3px 8px rgba(0, 0, 0, 0.3);border-radius: 15px;
}/* 定义广告图的动画形式和样式 */
.item>img {display: block;position: absolute;top: 0;border-radius: 3px;box-shadow: 0px 3px 8px rgba(0, 0, 0, 0.3);transform: translateZ(50px);transition: all .6s;/* 隐藏不可见页面 */backface-visibility: hidden;
}/* 定义广告文字的动画形式和样式 */
.item .information {position: absolute;top: 0;height: 186px;width: 345px;border-radius: 15px;transform: rotateX(-90deg) translateZ(50px);transition: all .6s;/* 隐藏不可见页面 */backface-visibility: hidden;
}

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

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

相关文章

刷代码随想录有感(66):回溯算法——组合问题的优化(剪枝)

代码&#xff1a;将for循环中i的搜索范围进行缩小&#xff0c;免去多余的不可能符合条件的操作。 for(int i start; i < n-(k-tmp.size())1;i) 实质是剪枝&#xff0c;拿n4,k4作比较&#xff1a; 显然结果只可能是[1,2,3,4]&#xff0c;选取顺序只可能是1-2-3-4&#xff…

c#多态性的应用

设计一个电脑游戏&#xff0c;游戏中有猪、牛、兔子、青蛙、鸭子等动物&#xff0c;这些动 物都继承于Vertebrata 类&#xff08;脊椎动物类&#xff09;&#xff0c;Vertebrata类有一个抽象方法Display()&#xff0c;每个动 物都从Vertebrata 类那里继承并重写了Display()方法…

windows下mysql5.6下载安装(多实例安装)

目录 1、下载 2、安装步骤 3、mysql多实例安装 1、下载 http://dev.mysql.com/downloads/windows/installer/5.6.html 2、安装步骤 我们采用自定义安装模式&#xff1a;选择32位或64位 默认即可&#xff1a; 说明&#xff0c;如果没有该页面就上一步&#xff0c;选择高级选…

OpenAI推出旗舰AI模型GPT-4o并免费开放

&#x1f989; AI新闻 &#x1f680; OpenAI推出旗舰AI模型GPT-4o并免费开放 摘要&#xff1a; OpenAI 未来的产品将以免费为优先&#xff0c;以让更多人使用为目标。OpenAI 发布了桌面版本的程序和更新后的 UI&#xff0c;更加简单自然。推出了新一代大模型 GPT-4o&#xf…

经典神经网络(8)GAN、CGAN、DCGAN、LSGAN及其在MNIST数据集上的应用

经典神经网络(8)GAN、CGAN、DCGAN、LSGAN及其在MNIST数据集上的应用 1 GAN的简述及其在MNIST数据集上的应用 GAN模型主导了生成式建模的前一个时代&#xff0c;但由于训练过程中的不稳定性&#xff0c;对GAN进行扩展需要仔细调整网络结构和训练考虑&#xff0c;因此GANs虽然在…

金融科技员工一年赚多少钱?富如恒生电子,穷如长亮科技

在本篇文章中&#xff0c;我们继续分析四家金融科技公司的数据&#xff0c;本次站在员工视角来看&#xff08;链接&#xff0c;这四家公司的更详细内容&#xff09;。 先说结论。 2023年&#xff0c;如果你是恒生电子的普通员工&#xff0c;那年薪在35万元&#xff1b;如果你在…

OSPF多区域通信基础实验

基本概念了解&#xff1a; 网络设备接口速率、 Ethernet 100MB GE 1000MB serial接口 1.544MB area 0 骨干区域&#xff08;backbone&#xff09; area 0area0.0.0.0 不是area 0 非骨干区域 ar area 256area 0.0.1.0 实验拓扑如下&#xff1a;要求PC1能够访问PC2 &#xff08;跨…

oracle多条重复数据,取最新的

1、原理讲解-可直接看2 筛选出最新的 SELECT * FROM ( SELECT t.*, ROW_NUMBER() OVER (PARTITION BY LOCALAUTHID ORDER BY LASTUPDATETIME DESC) AS rn FROM USER_LOCALAUTH_STATE t ) t WHERE t.rn 1; 解释&#xff1a; 这个序号是基于[LOCALAUTHID]字段进行分…

外网ip地址怎么获取?快解析

大家都清楚互联网是通过ip地址通信的&#xff0c;ip地址又分内网ip和外网ip。内网ip只能在内网使用&#xff1b;而外网ip作为电脑唯一标识&#xff0c;可在公网使用。那么外网ip地址怎么获取呢&#xff1f; 外网ip是网络运营商分配给用户的。目前最常见的两种上网方式一个是拉…

图文详解JUC:Wait与Sleep的区别与细节

目录 一.Wait() 二.Sleep() 三.总结Wait()与Sleep()的区别 一.Wait() 在Java中&#xff0c;wait() 方法是 Object类中的一个方法&#xff0c;用于线程间的协作。当一个线程调用wait() 方法时&#xff0c;它会释放对象的锁并进入等待状态&#xff0c;直到其他线程调用相同对…

JVM调优-调优原则和原理分析

1.写在前面 对于JVM调优这个话题&#xff0c;可能大部分程序员都听过这个名词。 但是绝大多数程序员&#xff0c;都没有真真实实去干过&#xff0c;都没有真实的实践过。也不懂得如何调优&#xff1f;不知道要调成怎么样&#xff1f; 那今天咋们就对这个话题来展开描述一下&…

洛谷 P3372:线段树 1 ← 分块算法模板(区间更新、区间查询)

【题目来源】https://www.luogu.com.cn/problem/P3372【题目描述】 如题&#xff0c;已知一个数列&#xff0c;你需要进行下面两种操作&#xff1a; &#xff08;1&#xff09;将某区间每一个数加上 k。 &#xff08;2&#xff09;求出某区间每一个数的和。【输入格式】 第一行…

二叉树——初解

二叉树 树树的概念树的性质 二叉树二叉树的概念二叉树的性质二叉树的实现方式数组构建左孩子右兄弟法构建指针构建 树 树的概念 在计算机科学中&#xff0c;树&#xff08;Tree&#xff09;是一种重要的非线性数据结构&#xff0c;它由若干节点&#xff08;Node&#xff09;组…

Chromium 调试指南2024 Windows11篇-调试变量监视(十)

1. 前言 设置断点和监视变量是调试过程中常用的两种技术手段。通过设置断点&#xff0c;我们可以暂停程序的执行并检查程序的内部状态&#xff0c;而监视变量则可以帮助我们实时查看程序中关键变量的值。本文将介绍如何在Chromium项目中进行断点设置和变量监视&#xff0c;帮助…

java内容快速回顾+SSM+SpringBoot简要概述

文章目录 java基础知识基本知识列表面对对象堆与栈的关系值修改与引用修改异常&#xff1a;错误异常 SSMspringMVCServletSpringMVC&#xff1a;基于 Servlet的 Spring Web 框架&#xff0c; spring控制反转 IoC(Inversion of Control)面向切面 Aop MybatisJDBCMybatis SpringB…

Git 基础使用(1) 入门指令

文章目录 Git 作用Git 安装Git 使用Git 仓库配置Git 工作原理Git 修改添加Git 查看日志Git 修改查询Git 版本回退 概念补充 Git 作用 Git 是一种分布式版本控制系统&#xff0c;它旨在追踪文件和文件夹的更改&#xff0c;并协助多人协作开发项目。 Git 安装 &#xff08;Lin…

17.多线程

多线程 程序、进程、线程的概念 程序&#xff1a;是指令和数据的有序集合&#xff0c;是一个静态的概念。比如&#xff0c;在电脑中&#xff0c;打开某个软件&#xff0c;就是启动程序。 进程&#xff1a;是执行程序的一次执行过程&#xff0c;是一个动态的概念&#xff0c;…

基于SSM的“口腔护理网站”的设计与实现(源码+数据库+文档)

基于SSM的“口腔护理网站”的设计与实现&#xff08;源码数据库文档) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SSM 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 首页 用户注册页面 医生信息查看模块 口腔护理预约模块 后台首页面…

分享如何通过定时任务调用lighthouse前端测试脚本+在持续集成测试中调用lighthouse前端测试脚本

最近写了个小工具来优化lighthouse在实际工作中的使用&#xff0c;具体实现了&#xff1a;通过定时任务调用前端测试脚本在持续集成测试中调用前端测试脚本。由于在公司中已经应用&#xff0c;所以就不能提供源码了&#xff0c;这里简单说一下实现思路&#xff0c;希望可以帮助…

Java 循环结构 - for, while 及 do...while

Java 循环结构 - for, while 及 do…while 顺序结构的程序语句只能被执行一次。 如果您想要同样的操作执行多次&#xff0c;就需要使用循环结构。 Java中有三种主要的循环结构&#xff1a; while 循环 do…while 循环 for 循环 在 Java5 中引入了一种主要用于数组的增强型 f…