当前位置: 首页 > news >正文

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

一、 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.lqws.cn/news/67771.html

相关文章:

  • 小目标检测:YOLOV7改进之双坐标注意力(DCA)
  • TDengine 高级功能——读缓存
  • 汽车安全体系:FuSa、SOTIF、Cybersecurity 从理论到实战
  • 机器人自动火焰切割H型钢的系统设计与应用
  • 机器人夹爪的选型与ROS通讯——机器人抓取系统基础系列(六)
  • 【Redis】Set 集合
  • 【基于阿里云搭建数据仓库(离线)】IDEA导出Jar包(包括第三方依赖)
  • 微型导轨在手术机器人领域中有哪些关键操作?
  • 【Linux】线程控制
  • java 多线程
  • dvwa4——File Inclusion
  • Spring Boot 3.X 下Redis缓存的尝试(二):自动注解实现自动化缓存操作
  • [特殊字符] Python开发革命!uv工具:让环境管理像点外卖一样简单
  • 振动分析师(ISO18436-2)四级能力矩阵 - 简介
  • Arbitrum Stylus 合约实战 :Rust 实现 ERC721
  • 01 Ubuntu20.04下编译QEMU8.2.4,交叉编译32位ARM程序,运行ARM程序的方法
  • JavaWeb预习(jsp)
  • 图论刷题1
  • 29 C 语言内存管理与多文件编程详解:栈区、全局静态区、static 与 extern 深度解析
  • Netty学习example示例
  • webfuture:如何屏蔽后台发文界面的保存为新文章按钮?
  • Linux 基础指令入门指南:解锁命令行的实用密码
  • Uiverse.io:免费UI组件库
  • MySQL:视图+用户管理+访问+连接池原理
  • Linux 系统 Docker Compose 安装
  • 调用蓝耘API打造AI 智能客服系统实践教程
  • 【C#朗读文本DLL动态按钮控件组及按钮事件文本框拖放数据】2022-1-21
  • SpringBoot(六)--- AOP、ThreadLocal
  • Windows 账号管理与安全指南
  • 【软件测试】测试框架(unittest/pytest)