百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

CSS3 动画——Animations(css3动画(简单动画的实现,如旋转等))

zhezhongyun 2025-07-19 23:51 4 浏览

CSS3 Animations

1 @keyframes属性

@keyframes 动画名称{关键帧持续时间% {css样式;}}

@keyframes myanimation
{
    0% {top:0px;background-color:#0000cc;}
    50% {top:100px;background-color;#339900;}
    100% {top:0px;background-color:#330000;}
}

2 animation属性

animation: name duration timing-function delay iteration-count direction;

animation-name 规定需要绑定到选择器的 keyframe 名称。。

animation-duration 规定完成动画所花费的时间, 以秒或毫秒计。

animation-timing-function 规定动画的速度曲线。

linear 动画从头到尾的速度是相同的。

ease 默认。动画以低速开始, 然后加快, 在结束前变慢。

ease-in 动画以低速开始。

ease-out 动画以低速结束。

ease-in-out 动画以低速开始和结束。

cubic-bezier(n,n,n,n) 在 cubic-bezier 函数中自己的值。可能的值是从 0 到 1 的数值。 参考地址: http://cubic-bezier.com/#.17,.67,.83,.67

animation-delay 规定在动画开始之前的延迟。以秒或毫秒计, 默认值是 0。

animation-iteration-count 规定动画应该播放的次数。

n 定义动画播放次数的数值。

infinite 规定动画应该无限次播放。

animation-direction 规定是否应该轮流反向播放动画。

normal 默认值。动画应该正常播放。

alternate 动画应该轮流反向播放。

使用方法一: from...to...

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
*{
    margin: 0;
    padding: 0;
}
div{
    width: 100px;
    height: 100px;
    background-color: orange;

}

/*div:hover{
width: 800px;
}*/
/*@keyframes 动画名{
from{
动画第一步(这里你可以不写他会继承上面的)
}
to{
动画最后一步
}
}*/
/*动画声明*/
@keyframes widthChange{
/*from{
width: 100px;
}*/
to{
width: 800px;
}
}
div{
    /*animation: 动画名称 过渡总时长;*/
    animation: widthChange 1s;
}
</style>
</head>
<body>
<div></div>
</body>
</html>

使用方法二: 百分比

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
div{
width: 100px;
height: 100px;
background-color: orange;
position: absolute;
left: 0;
top: 0;
}

/*动画声明*/
@keyframes positionChange{
    /*from{
    left: 0;
    }
    to{
    left: 800px;
    }*/
    /*百分数评分的的过渡总时长*/
    0%{
    left: 0;
    top: 0;
    }
    50%{
    left: 800px;
    top: 0;
    }
    100%{
    left: 800px;
    top: 500px;
    }
}
div{
    /*animation: 动画名称 过渡总时长;*/
    animation: positionChange 10s;
}
</style>
</head>
<body>
<div></div>
</body>
</html>

使用方法三: animation参数格式

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
*{
    margin: 0;
    padding: 0;
}
div{
    width: 100px;
    height: 100px;
    background-color: orange;

}
@keyframes widthChange{
    to{
    width: 800px;
    }
}
div{
    /*
    * 动画名称
    * 动画总时长s ms
    * 动画形式ease ease-in ease-out ease-in-out linear 贝塞尔曲线、
    * 延迟时间s ms
    * 循环次数①阿拉伯数字②infinite(无限次)
    * 停留到最后一帧forwards
    * 反向播放动画alternate(来回当做2次处理) normal 正常
    *
    * */
    animation: widthChange 5s;
}
div:hover{
/*动画停止*/
animation-play-state: paused
}
</style>
</head>
<body>
<div></div>
</body>
</html>

建立3D场景

transform-style 属性规定如何在 3D 空间中呈现被嵌套的元素。

注释:该属性必须与 transform 属性一同使用。

flat 子元素将不保留其 3D 位置。

preserve-3d 子元素将保留其 3D 位置。

transform-style: flat|preserve-3d;

perspective 属性定义 3D 元素距视图的距离, 以像素计。该属性允许您改变 3D 元素查看 3D 元素的视图。

当为元素定义 perspective 属性时, 其子元素会获得透视效果, 而不是元素本身。

注释:perspective 属性只影响 3D 转换元素。

perspective: number|none;

景深:

perspective是设置3d效果的景深, 通俗来说就是设置你的眼睛与这个3d元素的距离。

而生活经验告诉我们, 你从远处和近处分别观察同一个物体(比如正方形)时, 其3d效果肯定是不同的。

perspective-origin 属性定义 3D 元素所基于的 X 轴和 Y 轴。该属性允许您改变 3D 元素的底部位置。

当为元素定义 perspective-origin 属性时, 其子元素会获得透视效果, 而不是元素本身。

注释:该属性必须与 perspective 属性一同使用, 而且只影响 3D 转换元素。

<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Document</title>
<style type="text/css">
*{
    margin: 0;
    padding: 0;
    list-style: none;
}
div{
    width: 300px;
    height: 220px;
    margin: 100px auto;
    border: 1px solid #000;

    transform-style: preserve-3d;
    perspective: 800px;

    /*景深基点基本上没人改*/
    perspective-origin: left top;
}
img{
    width: 100%;
    display: block;
    transition: 1s;
    }
    div:hover>img{
    transform: rotateX(-45deg);
}
</style>
</head>
<body>
<div>
<img src="img/薛凯琪.jpg"/>
</div>
</body>
</html>

backface-visibility 属性定义当元素不面向屏幕时是否可见。

如果在旋转元素不希望看到其背面时, 该属性很有用。

背面隐藏

<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Document</title>
<style type="text/css">
*{
    margin: 0;
    padding: 0;
    list-style: none;
}
div{
    width: 300px;
    height: 220px;
    margin: 100px auto;
    border: 1px solid #000;

transform-style: preserve-3d;
    perspective: 1000px;
}
img{
    width: 100%;
    display: block;
    transition: 1s;
    transform-origin: left center;

    /*背面隐藏*/
    backface-visibility: hidden;
}
div:hover>img{
    transform: rotateY(-100deg);
}
</style>
</head>
<body>
<div>
<img src="img/薛凯琪.jpg"/>
</div>
</body>
</html>

相关推荐

C#.NET NLog 详解(c#nuget)

简介NLog是.NET平台上最流行的开源日志框架之一,特色是灵活的配置、丰富的输出目标(Target),以及高性能的异步写入能力。适用场景:从控制台、文件、数据库、网络到Elastic...

WPF中datagrid单元格背景颜色(wpf datagrid单元格编辑)

datagrid中AutoGenerateColumns="true",使用viewmodel中绑定的数据源。后台代码找到目标字段,重写IValueConverter值转换器接口,根...

Unity Profiler实战指南:从卡顿到丝滑的性能优化之旅

当玩家说"这游戏卡爆了"时,你该怎么办?"角色移动时帧率从60掉到20,技能特效一放直接卡成PPT"——这是《幻境冒险》项目上线前测试阶段收到的玩家反馈。作为主程的我知...

Windows下取文件属性特例(windows文件属性快捷键)

今日碰到有程序在我们产品系统环境下无法正常运行某些功能,使用ProcessMonitor加反复测试发现,与产品中创建的symlink(软链接)有关。具体来讲,symlink文件是一个软链接文件,它的...

展开说说,DOS有哪些常用、实用的命令?

晚上好,我是老杨,今天来聊聊常用的DOS命令。虽然是老古董,但不妨碍它的好用程度。可能一些新手不晓得,但是和老杨一个年纪的,一定对DOS系统不陌生。尽管现在大多数电脑的操作系统是Windows,但在W...

webservice更改返回信息节点名称(webservice返回值)

问题详情:<!--访问webservice中,返回的信息--><soap:Envelopexmlns:soap="http://schemas.xmlsoap.org/s...

Windows Server 2019 基线检查表 (1)

ControlSetCorrectlyYesNo1AccountPolicies1.1PasswordPolicy1.1.1(L1)Ensure'Enforcepasswordh...

MapStruct架构设计(mapstruct官方文档)

MapStruct架构原理及改造一、前言4二、什么是语法树(AST)42.1Java编译时的三个阶段4三、什么是JSR26953.1使用步骤53.2流程图6四、源码架构分析64.1...

Excel常用技能分享与探讨(6-实战小功能分享 三)

书接上文,上一篇主要写了如何用代码动态创建控件,这一章讲讲如何具体实现我们需要的功能。五、功能性代码我们添加两个OptionButton的目的就是为了切换到对应的工具,所以,我们需要的是在点击了相对应...

30天学会Python编程:8. Python面向对象编程

8.1OOP基础概念8.1.1面向对象三大特性8.1.2类与对象关系核心概念:类(Class):对象的蓝图/模板对象(Object):类的具体实例属性(Attribute):对象的状态/数据方法...

环境变量设置被禁止临时方案(为什么设置了环境变量还是会出现)

1,到官网下载ant安装包。官网下载地址:ApacheAnt-BinaryDistributions2,解压到本地不带中文目录下,我这儿是D盘并且改名为ant3,设置环镜变量时,发现云桌面系统...

一文读懂 JavaScript依赖注入(java依赖注入简单理解)

大家好,我是Echa。依赖注入DI(DependencyInjection)是编程领域中一个非常常见的设计模式,它指的是将应用程序所需的依赖关系(如服务或其他组件)通过构造函数参数或属性自动...

TypeScript 熟练度自测:6 道题检验你的 TS 功底!

这些题目既可以测试基本的类型知识,也能考察面向对象编程、泛型、类型推导和高级类型等方面的能力。以下是几个我会出题的方向和具体题目:1.类型推导与基础类型目的:考察应聘者对TypeScript类型推...

怀旧服实用宏整理,猎人篇(怀旧服实用宏整理,猎人篇怎么用)

关于宏的贴子不少,这里我去芜存菁,整理并留下了觉得比较实用的宏命令,希望对大家有用。/m打开宏命令设置窗口宝宝清图腾宏/scriptlocalt,n,i,_={"根基\","...

MS15-083:Windows SMB内存损坏漏洞分析

2015年8月11日微软发布了14个安全补丁,其中就包括一个SMB服务器补丁。在本文我将解释我是如何触发该漏洞的。微软安全公告MS15-083在所有的修复补丁中,我对“服务器消息块中的漏洞可能允许远程...