CSS之动画(奔跑的熊、两面反转盒子、3D导航栏、旋转木马)

article/2025/7/14 13:17:53

一、 2D转换

1.1  transform: translate( )
转换(transform) 是CSS3中具有颠覆性的特征之一,可以实现元素的位移、旋转、缩放等效果
移动:translate
旋转:rotate
缩放:scale
下图为2D转换的坐标系
回忆:移动盒子位置的三种方法:1. margin 2.position  3.2D转换
注意:盒子经过变化后,本来拥有的位置也会进行保留。也不是说不会影响其他的元素
1.2. transform: translatex. (50%)
移动的数值改为百分数则代表了盒子本身宽度乘50%。但是对于行内标签无效。
//最简单的实现盒子居中显示效果的方法position:absolute;top: 50%;left: 50%;width: 100px;height: 100px;background-color: red;transform: translate(-50%,-50%);

1.3 旋转

transform: translate(x deg)             x为正,则顺时针旋转。默认旋转点是元素的中心位置

transform-origin:x y;             x y 可以是像素或者也可以是方位名词top bottom left right

旋转中心动画案例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<style>.box{margin: 200px auto;width: 200px;height: 200px;background-color: pink;border: 1px solid black;overflow: hidden;}
.box::before{display: block;content: '温教授讲三农';width: 100%;height: 100%;background-color: hotpink;transform: rotate(180deg);transform-origin:left bottom;/* 谁做过渡给谁加 */
transition: all .7s;
}/* 鼠标经过div盒子盒子复原 */
.box:hover::before{transform: rotate(0deg);
}
</style>
<body><div class="box"></div>
</body>
</html>

1.4 Scale

transform: scale(x,y)                x轴变为x倍,y变y倍

transform:scale(2)                宽、高都变成两倍

scale的优势:1. 可以设置缩放的中心点 2.不会影响其他的盒子

二、CSS动画

动画简写

前两个属性不可省略

奔跑的熊,旧百度浏览器

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<style>body{background-color: #ccc;}div{position: absolute;width: 200px;height: 100px;background: url(media/bear.png)no-repeat;animation: bear 1s steps(8) infinite,move 2s linear forwards;}@keyframes bear{0% {background-position: 0 0;}100% {background-position: -1600px 0;}}@keyframes move {0% {left: 0;}100% {left: 50%;margin-left: -100px;}}
</style>
<body><div></div>
</body>
</html>

 定义动画

@keyframes 动画名称 {
0%{
width:100px;
} 
100%{
width:200px;
}
}/* 调用动画 */
animation-name: 动画名称;
/* 持续时间 */
animation-duration: 持续时间;

动画的常用属性

动画的简写形式:类似background

animation: myfirst 5s linear 2s infinite alternate;
前两个一般不可以省略
三、3D动画
动画视角的三维坐标系
3D位移: translate3d(x,y,z)
3D旋转: rotate3d(x,y,z)
透视: perspective
3D呈现 transfrom-style
带有xyz的都不可以省略掉
可以使用左手定责来确定该向什么方向进行旋转
3D导航栏项目代码示例
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<style>*{padding: 0;margin: 0;}ul {margin: 100px;}ul li{width: 120px;height: 35px;list-style:none;perspective: 300px;}.box{position: relative;width: 100%;height: 100%;transform-style: preserve-3d;transition: all .6s;}.box:hover{transform: rotateX(90deg);}.front,.back{position: absolute;left: 0;top:0;width: 100%;height: 100%;}.front{background-color:pink;z-index: 1;transform: translateZ(17.5px);}.back{/* transform: rotateX('90deg'); */background-color: aquamarine;transform: translateY(17.5px) rotateX(-90deg);}
</style>
<body><ul><li><div class="box"><div class="front">韩愈文集1</div><div class="back">感二鸟赋</div></div></li></ul>
</body></html>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>3D旋转案例之旋转木马</title>
</head>
<style>body{perspective: 1200px;}section{position: relative;width: 500px;height: 300px;margin: 50px auto;transform-style: preserve-3d;animation: rotate 4s linear infinite;background: url(media/dezoomify-result\(50\).jpg) no-repeat;}@keyframes rotate{0%{transform: rotateY(0);}100%{transform: rotateY(360deg);}}section div{position: absolute;left: 0;top: 0;width: 100%;height: 100%;background: url(media/dog.jpg) no-repeat;}section div:nth-child(1){transform: translateZ(300px);}section div:nth-child(2){transform: rotateY(60deg) translateZ(300px);}section div:nth-child(3){transform: rotateY(120deg) translateZ(300px);}section div:nth-child(4){transform: rotateY(180deg) translateZ(300px);}section div:nth-child(5){transform: rotateY(240deg) translateZ(300px);}section div:nth-child(6){transform: rotateY(300deg) translateZ(300px);}section div:nth-child(7){transform: rotateY(360deg) translateZ(300px);}
</style>
<body><section><div></div><div></div><div></div><div></div><div></div><div></div></section>
</body>
</html>


http://www.hkcw.cn/article/uVqCrUMeAZ.shtml

相关文章

使用 MCP 将代理连接到 Elasticsearch 并对索引进行查询

本文是之前文章 “将代理连接到 Elasticsearch 使用模型上下文协议” 的扩展。在这里&#xff0c;我们将以详细的步骤来一步一步地展示如何安装 MCP Server 及使用 MCP 服务器和我们的 Elasticsearch 中的数据来进行对话。 安装 Elasticsearch 及 Kibana 如果你还没有安装好你…

PMI Suite V5.9.125 (Byos and Byosphere)2025年5月15日版本PMI Suite V5.9

1、完整质量分析 Intact Mass™工作流程提供自动MS/MS光谱注释、MS级反卷积和鉴定&#xff0c;与传统的自下而上方法相比&#xff0c;减少了数据分析所需的时间。 2、肽水平分析 鉴定复杂样品中的蛋白质和修饰肽。大幅缩短以肽为中心的工作流程的分析时间 3、色谱图分析 将…

MDP的curriculums部分

文章目录 1. isaaclab中的curriculums1.1 modify_reward_weight1.1.1 函数功能1.1.2 参数详解1.1.3 函数逻辑1.1.4 如何使用 2. isaaclab_task中的curriculums2.1 terrain_levels_vel2.1 功能概述2.2 函数参数2.3 函数逻辑 3. robot_lab中的curriculums3.1 command_levels_vel …

【AUTOSAR OS】事件机制解析:定义、实现与应用

文章目录 一、Event的定义与作用二、核心数据结构三、重要函数实现与原理1. **事件初始化 Os_InitEvent()**2. **设置事件 SetEvent()/Os_SetEvent()**3. **等待事件 WaitEvent()/Os_WaitEvent()**4. **清除事件 ClearEvent()**5. **获取事件状态 GetEvent()** 四、应用示例&am…

单元测试-断言常见注解

目录 1.断言 2.常见注解 3.依赖范围 1.断言 断言练习 package com.gdcp;import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test;//测试类 public class UserServiceTest {Testpublic void testGetGender(){UserService userService new UserService…

5.3.1_1二叉树的先中后序遍历

知识总览&#xff1a; 什么是遍历&#xff1a; 按照某种次序把所有节点都访问一遍 二叉树的遍历-分支节点逐层展开法(会这个就行)&#xff1a; 先序(根)遍历&#xff1a;根左右 中序(根)遍历&#xff1a;左根右 后序(根)遍历&#xff1a;左右根 分支节点逐层展开法&am…

SpringMVC的注解

1. SpringMVC:Spring Web MVC 2. RequestMapping 既是类注解&#xff0c;又是方法注解 3. 访问的URL路径&#xff1a;类路径方法路径 4.后端开发人员测试接口&#xff0c;通常使用postman或其他类似工具来发起请求 对于后端而言&#xff0c;使用postman或form表单&#xff0…

ipfs下载和安装(windows)

关于ipfs介绍&#xff0c;网上一大堆&#xff0c;这里就不讲了。 zip安装包下载衔接&#xff1a;https://github.com/ipfs/kubo/releases/download/v0.35.0/kubo_v0.35.0_windows-amd64.zip 下载之后解压&#xff0c;将文件放到一个合适的目录。 配置系统环境变量&#xff08…

World of Warcraft Hunter [Grandel] [Ancient Petrified Leaf]

World of Warcraft Hunter [Grandel] [Ancient Petrified Leaf] 猎人史诗弓任务 [远古石叶][罗克迪洛尔&#xff0c;上古守护者的手杖][伦鲁迪洛尔&#xff0c;上古守护者的长弓] 最伟大的猎手 Grandel&#xff0c;很多年前的图片。史诗弓流程。

【LeetCode 题解】两数之和(C++/Python 双解法):从语法到算法的全面解析

【LeetCode题解】两数之和&#xff08;C/Python双解法&#xff09;&#xff1a;从语法到算法的全面解析 一、题目描述 题目链接&#xff1a;1. 两数之和 难度&#xff1a;简单 要求&#xff1a;给定一个整数数组 nums 和一个整数目标值 target&#xff0c;在数组中找出两个数…

《AI Agent项目开发实战》DeepSeek R1模型蒸馏入门实战

一、模型蒸馏环境部署 注&#xff1a;本次实验仍然采用Ubuntu操作系统&#xff0c;基本配置如下&#xff1a; 需要注意的是&#xff0c;本次公开课以Qwen 1.5-instruct模型为例进行蒸馏&#xff0c;从而能省略冷启动SFT过程&#xff0c;并且 由于Qwen系列模型本身性能较强&…

17.进程间通信(三)

一、System V 消息队列基本结构与理解 消息队列是全双工通信&#xff0c;可以同时收发消息。 结论1&#xff1a;消息队列提供了一种&#xff0c;一个进程给另一个进程发送有类型数据块的方式&#xff01; 结论2&#xff1a;OS中消息队列可能有多个&#xff0c;要对消息队列进行…

【汽车电子入门】一文了解LIN总线

前言&#xff1a;LIN&#xff08;Local Interconnect Network&#xff09;总线&#xff0c;也就是局域互联网的意思&#xff0c;它的出现晚于CAN总线&#xff0c;于20世纪90年代末被摩托罗拉、宝马、奥迪、戴姆勒、大众以及沃尔沃等多家公司联合开发&#xff0c;其目的是提供一…

BayesFlow:基于神经网络的摊销贝叶斯推断框架

贝叶斯推断为不确定性条件下的推理、复杂系统建模以及基于观测数据的预测提供了严谨且功能强大的理论框架。尽管贝叶斯建模在理论上具有优雅性&#xff0c;但在实际应用中经常面临显著的计算挑战&#xff1a;后验分布通常缺乏解析解&#xff0c;模型验证和比较需要进行重复的推…

高压电绝缘子破损目标检测数据集简介与应用

在电力系统中&#xff0c;高压电绝缘子起着关键的绝缘与机械支撑作用。一旦发生破损&#xff0c;不仅影响输电线路的安全运行&#xff0c;还可能引发电力事故。因此&#xff0c;利用目标检测技术对高压绝缘子的破损情况进行智能识别&#xff0c;已成为当前电力巡检中的重要研究…

深度学习与神经网络 前馈神经网络

1.神经网络特征 无需人去告知神经网络具体的特征是什么&#xff0c;神经网络可以自主学习 2.激活函数性质 &#xff08;1&#xff09;连续并可导&#xff08;允许少数点不可导&#xff09;的非线性函数 &#xff08;2&#xff09;单调递增 &#xff08;3&#xff09;函数本…

paoxiaomo的XCPC算法竞赛训练经验

楼主作为一个普通二本的ICPC选手&#xff0c;在0基础的情况下凭借自学&#xff0c;获得过南昌邀请赛金牌&#xff0c;杭州区域赛银牌&#xff0c;一路上经历过不少的跌宕起伏&#xff0c;如今将曾经摸索出来的学习路线分享给大家 一&#xff0c;语言基础 学习C语言基础语法&a…

电力系统时间同步系统

电力系统中&#xff0c;电压、电流、功率变化等特征量测量都是时间相关函数[1]&#xff0c;统一精准的时间源对于电网安全稳定运行至关重要&#xff0c;因此&#xff0c;电力系统运行规程[2]中明确要求继电保护装置、自动化装置、安全稳定控制系统、能量管理系统和生产信息管理…

Codeforces Round 1028 (Div. 2)(A-D)

题面链接&#xff1a;Dashboard - Codeforces Round 1028 (Div. 2) - Codeforces A. Gellyfish and Tricolor Pansy 思路 要知道骑士如果没了那么这个人就失去了攻击手段&#xff0c;贪心的来说我们只需要攻击血量少的即可&#xff0c;那么取min比较一下即可 代码 void so…