css3动画效果(旋转,帧动画)

1 篇文章 0 订阅
1 篇文章 0 订阅

一、css动画属性

animation是css3的动画属性,也是简写,其中包含以下几种值可配置

默认值:none 0 ease 0 1 normal

描述
animation-name需要绑定到选择器的 keyframe 名称
animation-duration完成动画所花费的时间,以秒或毫秒计(数字加单位,例:1s)
animation-timing-function动画的速度曲线(动画将如何完成一个周期)
animation-delay动画在启动前的延迟间隔
animation-iteration-count动画应该播放的次数(无限:infinite;或者使用数字表示次数)
animation-direction是否应该轮流反向播放动画

备注:

速度曲线

描述
linear匀速
ease慢-快-慢(加速快)
ease-in慢-快
ease-out快-慢
ease-in-out慢-快-慢(加速慢)
cubic-bezier(n,n,n,n)自定义(n取值为0~1)

二、实例

1、普通动画(以旋转效果举例)

普通动画较为简单,不做详细介绍了,直接上代码

<template>
  <div class="main">
    <div class="animation"></div>
  </div>
</template>

<style lang="scss" scoped>
.main {
  display: flex;
  align-items: center;
  justify-content: center;
  .animation {
    margin-left: 50px;
    width: 100px;
    height: 100px;
    border: 1px solid #999;
    border-radius: 5px;
    animation: rotate 6s linear infinite;
    -webkit-animation:rotate 6s linear infinite; /* Safari 和 Chrome */
  }
  @-webkit-keyframes rotate {
    0% {
      -webkit-transform: rotate(0deg);
    }

    50% {
      -webkit-transform: rotate(180deg);
    }

    100% {
      -webkit-transform: rotate(360deg);
    }
  }
}
</style>

2、帧动画

帧动画和普通动画略有区别,需要使用steps函数,steps函数接收一个数字参数 n,这个数字表示把动画分成 n 帧。
下面的示例,因为图片有30个片段,所以我分成了30帧去完成。

<template>
  <div class="main">
    <div class="animation"></div>
  </div>
</template>

<style lang="scss" scoped>
.main {
  display: flex;
  align-items: center;
  justify-content: center;
  .animation {
    width: 96px;
    height: 100px;
    border: 1px solid #999;
    border-radius: 5px;
    cursor: pointer;
    background: url(~@/assets/img/frame.png);
    background-position: 0 4px;
  }
  .animation:hover {
    animation: run 1s steps(30) 0s 1 both;
    -webkit-animation: run 1s steps(1) 0s 1 both;  /* Safari 和 Chrome */
  }

  @-webkit-keyframes run {
    to {
      background-position: 0 3000%;
    }
  }
}
</style>

注意:
background-position参数的值要与div(dom)的宽度或者高度成整数倍关系,否则动画会出现移动现象。

效果图如下(只是截图,无法呈现动画效果):鼠标移上去会执行一次动画,移开后复原
效果截图1
效果截图2
效果截图3

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

温其如玉_zxh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值