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.hqwc.cn/news/702200.html

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

相关文章

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

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

2024CCPC全国邀请赛(郑州)暨河南省赛

2024CCPC全国邀请赛&#xff08;郑州站&#xff09;暨河南省赛 一铜一银&#xff0c;虽不是线下第一次参赛但是第一次拿xcpc奖牌&#xff0c;还有个国赛奖真是不戳。感谢学长&#xff0c;感谢队友&#xff01; 虽然遗憾没有冲到省赛金&#xff0c;不过还有icpc商丘&#xff08…

软件工程期末复习(7)需求过程

需求分析 需求过程 什么是需求过程&#xff1f; 需求过程是用来导出、确认和维护系统需求文档的一组结构化活动。通常&#xff0c;一个良好的需求过程应包括下列活动&#xff1a; 需求提取需求分析和协商需求确认 需求提取 需求提取是通过与客户、系统用户和其他与系统开发相…

面 试 题

过滤器和拦截器的区别 都是 Aop 思想的一种体现&#xff0c;用来解决项目中 某一类 问题的两种接口(工具)&#xff0c;都可以对请求做一些增强 出身 过滤器来自 servlet 拦截器来自 spring 使用范围 过滤器 Filter 实现了 iavax.servlet.Filter 接口&#xff0c;也就是说…

金航标kinghelm萨科微slkor公司发展和品牌传播

为了金航标kinghelm萨科微slkor公司发展和品牌传播&#xff0c;推出了”金航标每日芯闻“与“萨科微每日芯闻“栏目&#xff0c;影响力非常好。这一构想并非一时的灵光乍现&#xff0c;而是经过深思熟虑和充分调研的结果。制定该栏目的模板时候时&#xff0c;就明确了要求语音版…

C++进阶:红黑树介绍及模拟实现(图示详解过程)

C进阶&#xff1a;红黑树介绍及模拟实现 上次介绍了AVL树&#xff1a;C进阶&#xff1a;AVL树详解及模拟实现&#xff08;图示讲解旋转过程&#xff09; 今天就来紧接着来红黑树啦!!! 文章目录 1.红黑树介绍约束规则 2.项目文件规划3.整体框架&#xff08;节点和Tree&#xf…

html--地图

<!DOCTYPE html> <html lang"en"> <head><meta charset"utf-8"><title>ECharts</title><!--Step:1 引入一个模块加载器&#xff0c;如esl.js或者require.js--><script src"js/esl.js"></scr…

记一次洛谷刷题让人摸不到头脑的报错——Runtime Error.Received signal 6: Aborted / IOT trap.

报错题目 外星密码 - 洛谷 具体报错信息 Runtime Error.Received signal 6: Aborted / IOT trap. 错误代码 #include <iostream> #include <cstring> using namespace std;string sol() {string s "";string t "";char c ;int n 0;whi…

OpenAI 重磅发布GPT 4o!可以视频聊天的AI?

OpenAI 重磅发布GPT 4o&#xff01; 前言 就在今日&#xff0c;OpenAI发布了ChatGPT-4o版本&#xff0c;技术主管 Mira Murati 在直播中表示GPT-4o对比之前版本速度更快&#xff0c;在文本、视频和音频方面的能力也都有所提高。值得注意的是它还可以让用户与 ChatGPT 进行视频聊…

每日5题Day1 - LeetCode 1-5

每一步向前都是向自己的梦想更近一步&#xff0c;坚持不懈&#xff0c;勇往直前&#xff01; 第一题&#xff1a;1. 两数之和 - 力扣&#xff08;LeetCode&#xff09; class Solution {public int[] twoSum(int[] nums, int target) {//返回值为Int[]数组&#xff0c;所以先初…

Spring:SpringBoot Starter 工作原理详解

一、前言 通过使用Spring Boot Starter&#xff0c;开发人员可以避免手动查找和添加每个所需的库&#xff0c;从而大大简化了项目的依赖管理。这些starter不仅包含了库依赖&#xff0c;还可能包含自动配置&#xff0c;从而减少了开发人员需要编写的配置代码。 本文将分析Spring…

DDoS攻击揭秘与网站防护策略

DDoS攻击&#xff08;分布式拒绝服务攻击&#xff09;是一种利用大量被控制的计算机或智能设备&#xff08;如僵尸网络&#xff09;对目标网站或服务器发起大量无效请求或数据流量&#xff0c;从而导致目标系统资源耗尽、服务崩溃或无法处理正常请求的攻击方式。这种攻击通常是…