首页 > 其他分享 >CSS:@keyframes和animation

CSS:@keyframes和animation

时间:2023-10-17 18:36:09浏览次数:40  
标签:动画 top keyframes animation 5s infinite mymove CSS

一、@keyframes定义动画

通过 @keyframes 规则,您能够创建动画。创建动画的原理是,将一套 CSS 样式逐渐变化为另一套样式。在动画过程中,您能够多次改变这套 CSS 样式。

以百分比来规定改变发生的时间,或者通过关键词 "from" 和 "to",等价于 0% 和 100%。0% 是动画的开始时间,100% 动画的结束时间。

提示:为了获得最佳的浏览器支持,您应该始终定义 0% 和 100% 选择器。

提示:请使用动画属性来控制动画的外观,同时将动画与选择器绑定。

CSS 语法:

@keyframes animationname {keyframes-selector {css-styles;}}

例子:

使 div 元素匀速向下移动:

<!DOCTYPE html>
<html>
<head>
<style> 
div
{
  width:100px;
  height:100px;
  background:red;
  position:relative;
  animation:mymove 5s infinite;
  -moz-animation:mymove 5s infinite; /* Firefox */
  -webkit-animation:mymove 5s infinite; /* Safari and Chrome */
  -o-animation:mymove 5s infinite; /* Opera */
}

@keyframes mymove
{
  from {top:0px;}
  to {top:200px;}
}

@-moz-keyframes mymove /* Firefox */
{
from {top:0px;}
to {top:200px;}
}

@-webkit-keyframes mymove /* Safari and Chrome */
{
from {top:0px;}
to {top:200px;}
}

@-o-keyframes mymove /* Opera */
{
from {top:0px;}
to {top:200px;}
}
</style>
</head>
<body>

动画如下:

例2

div
{
  width:100px;
  height:100px;
  background:red;
  position:relative;
  animation:mymove 5s infinite;
  -moz-animation:mymove 5s infinite; /* Firefox */
  -webkit-animation:mymove 5s infinite; /* Safari and Chrome */
  -o-animation:mymove 5s infinite; /* Opera */
}

@keyframes mymove
{
  0%   {top:0px;}
  25%  {top:200px;}
  75%  {top:50px}
  100% {top:100px;}
}

效果如下:

例3:在一个动画中改变多个 CSS 样式:

div
{
  width:100px;
  height:100px;
  background:red;
  position:relative;
  animation:mymove 5s infinite;
  -moz-animation:mymove 5s infinite; /* Firefox */
  -webkit-animation:mymove 5s infinite; /* Safari and Chrome */
  -o-animation:mymove 5s infinite; /* Opera */
}

@keyframes mymove
{
  0%   {top:0px; background:red; width:100px;}
  100% {top:200px; background:yellow; width:300px;}
}

效果:

例4:带有多个 CSS 样式的多个 keyframe 选择器:

div
{
  width:100px;
  height:100px;
  background:red;
  position:relative;
  animation:mymove 5s infinite;
  -moz-animation:mymove 5s infinite; /* Firefox */
  -webkit-animation:mymove 5s infinite; /* Safari and Chrome */
  -o-animation:mymove 5s infinite; /* Opera */
}

@keyframes mymove
{
  0%   {top:0px; left:0px; background:red;}
  25%  {top:0px; left:100px; background:blue;}
  50%  {top:100px; left:100px; background:yellow;}
  75%  {top:100px; left:0px; background:green;}
  100% {top:0px; left:0px; background:red;}
}

效果:

例5:微信小程序中的动画

wxml

<view class="daily_work">
    <view class="daily_work_title">日常工作</view>
    <view class="scroll_ul" wx:if="{{list1 && list1.length > 0}}">
        <text wx:for="{{list1}}">{{item}}</text>
    </view>    
  </view>

wxss

.daily_work{
  margin: 200rpx 20rpx 20rpx 20rpx;
  width: 710rpx;
  background-color: #EDF1F9;
  border-radius: 6px;
  position: fixed;
  height: 100px;
  overflow: hidden;
  
}
.daily_work .daily_work_title{
  margin: 20rpx 0 20rpx 20rpx;
  font-weight: bolder;
}
.daily_work .scroll_ul {
  padding:5px 0;
  white-space: nowrap;/*禁止换行*/
  animation: mymove 10s linear infinite; /* 滚动动画 */
}

.daily_work .scroll_ul text {
  display:inline-block;
  margin-right:10px;
  height: 40px;
  line-height: 40px;
  font-size: 28rpx;
  padding:0 6px;
  border-radius: 6px;
  background-color: #CDD9EE;
  color: #4E79C2;
}

@keyframes mymove {
  100% {
    transform: translateX(-500px); // 到100%时向左移动500px
  }
}

js:

data: {
      list1: ["起床","扫地","拖地","晾衣服","吃早餐","骑车去上班","上班","吃中餐","上班","骑车回家","吃晚餐","带娃","洗澡","睡觉"]
    },

效果:

二、animation设置动画属性

1、animation定义和用法

animation 属性是一个简写属性,用于设置六个动画属性:

注释:请始终规定 animation-duration 属性,否则时长为 0,就不会播放动画了。

实例

使用简写属性,将动画与 div 元素绑定:

div
{
  animation:mymove 5s infinite;
}

CSS 语法

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

默认值:none 0 ease 0 1 normal

2、animation-timing-function的CSS语法:

animation-timing-function: value;

animation-timing-function 使用名为三次贝塞尔(Cubic Bezier)函数的数学函数,来生成速度曲线。您能够在该函数中使用自己的值,也可以预定义的值:

linear表示匀速

3、animation-timing-function的CSS语法:

animation-iteration-count: n|infinite;

infinite表示无限次播放动画

4、animation-duration

animation-duration 属性定义动画完成一个周期所需要的时间,以秒或毫秒计。

css语法:

animation-duration: time;

 

标签:动画,top,keyframes,animation,5s,infinite,mymove,CSS
From: https://www.cnblogs.com/zwh0910/p/17770342.html

相关文章

  • 2前端开发css
    form表单'''获取前端用户数据并发送给后端服务器'''<fromaction=""></from>#需要再form标签内部编写获取用户数据标签#1属性action控制数据的提交地址方式1:写全路径action="http://www.aa7a.cn/user.php"方式2:写后缀(自动补全IP和PORT)......
  • CSS-03
    去掉li前面的项目符号:list-style:none圆角边框border-radius:12px;可以是px或百分比若将正方形改为圆形,则:border-radius:50%;或者将其设为宽度的一半。盒子阴影box-shadow:8px10px10px10pxrgba(0,0,0,.3);水平阴影垂直阴影模糊距离阴影的尺寸阴影颜色透明色:rg......
  • CSS - 放大缩小淡入淡出效果
    效果图:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>CSSZoominandoutAnimation</title><style>@-webkit-keyframeszoomIn{from{......
  • 在html中 如何 插入 js 和 css 代码 以及 如何 引用 js 和 css 文件
    在HTML中插入JavaScript和CSS代码,以及引用JavaScript和CSS文件的方法如下:插入JavaScript代码:在HTML文件中,你可以使用<script>标签来插入JavaScript代码。例如:<script>functionmyFunction(){alert("Hello,World!");}</script>引用JavaScript文件:如果你的JavaScript......
  • [学习笔记] 有关CSS响应式设计的单位
    em和rem单位:em和rem是相对于元素的字体大小计算的单位。em单位是相对于父元素的字体大小,而rem单位是相对于根元素(通常是 <html> 元素)的字体大小。em和rem单位可以用于实现相对于字体大小的自适应布局。vw和vh单位:vw和vh是视口宽度和视口高度的百分比单位......
  • 26个CSS超实用技巧
    1.文字溢出显示省略号单行文字:一定要设置宽度p{​•width:200px;​•overflow:hidden;text-overflow:ellipsis;white-space:nowrap;​​​}多行文字溢出显示省略号p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-l......
  • Tailwind CSS 速查
    TailwindCSS提供了大量的实用程序类,这些类名都是使用缩写的方式,以更简洁地表述其含义。以下是一些常用的TailwindCSS缩写及其对应的意义:布局w:widthmax-w:max-widthh:heightmax-h:max-heightm:marginmt:margin-topmb:margin-bottomml:mar......
  • 什么???CSS也能原子化!
    1.什么是原子化CSS?AtomicCSSistheapproachtoCSSarchitecturethatfavorssmall,single-purposeclasseswithnamesbasedonvisualfunction.Let’sDefineExactlyWhatAtomicCSSis上文的意思翻译过来就是原子化CSS是一种CSS的架构方法,倾向于使用用途单一且......
  • web前端html+css页面内容的六种隐藏方式
    一、使用透明度语法:opacity:0注意:元素消失,但是还会占据空间,只是视觉看不出来<style>.box{width:100px;height:100px;background-color:aquamarine;opacity:0;}</style><divclass="box"></div> 二、使用display语法:display:none注意:元素消失,不会占据空间<style......
  • 数字人论文:Audio-Driven Facial Animation by Joint End-to-End Learning of Pose an
    老规矩.直接第三章3.端到端网络结构给一个audio短窗口,也就是片段.我们预测窗口中间时刻的面部表情.我们把表情看做一个全端点的向量(后面我们会看这是什么的一种刻画面部)一旦我们网络训完,我们回各个时间点同时生成,并行.即使不需要过去的帧画面,依然生成很稳定的......