有趣的CSS - 一直动的按钮

大家好,我是 Just,这里是「设计师工作日常」,今天分享的是用 css 写一个好玩的不停震动的按钮。


《有趣的css》系列最新实例通过公众号「设计师工作日常」发布。

整体效果

使用 animation 属性,使 button 按钮不停的循环移动,产生视觉震动的效果。


核心代码部分,简要说明了写法思路;完整代码在最后,可直接复制到本地运行。

核心代码

html 代码

<button class="btn15">动起来</button>

一个 button 标签。

css 部分代码

.btn15{
  width: 140px;
  height: 48px;
  line-height: 48px;
  background-color: #eee;
  border: none;
  border-radius: 24px;
  font-size: 16px;
  color: #333333;
  text-align: center;
  transition: all 0.24s linear;
}
.btn15:hover{
  cursor: pointer;
  color: #fff;
  background-color: #253ed2;
  animation: yizhidong 0.24s linear infinite;
}
@keyframes yizhidong{
  0%{
    transform: translate(0);
  }
  20%{
    transform: translate(-3px, 3px);
  }
  40%{
    transform: translate(-2px, -3px);
  }
  60%{
    transform: translate(3px, 2px);
  }
  80%{
    transform: translate(2px, -3px);
  }
  100%{
    transform: translate(0);
  }
}

设置 animation 属性参数,让按钮位置不停循环变化。

完整代码如下

html 页面

<!DOCTYPE html>
<html lang="zh">
  <head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="style.css">
    <title>一直动的按钮</title>
  </head>
  <body>
    <div class="app">
      <button class="btn15">动起来</button>
    </div>
  </body>
</html>

css 样式

/** style.css **/
.app{
  width: 100%;
  height: 100vh;
  background-color: #ffffff;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}
.btn15{
  width: 140px;
  height: 48px;
  line-height: 48px;
  background-color: #eee;
  border: none;
  border-radius: 24px;
  font-size: 16px;
  color: #333333;
  text-align: center;
  transition: all 0.24s linear;
}
.btn15:hover{
  cursor: pointer;
  color: #fff;
  background-color: #253ed2;
  animation: yizhidong 0.24s linear infinite;
}
@keyframes yizhidong{
  0%{
    transform: translate(0);
  }
  20%{
    transform: translate(-3px, 3px);
  }
  40%{
    transform: translate(-2px, -3px);
  }
  60%{
    transform: translate(3px, 2px);
  }
  80%{
    transform: translate(2px, -3px);
  }
  100%{
    transform: translate(0);
  }
}

页面渲染效果

以上就是所有代码,以及简单的思路,希望对你有一些帮助或者启发。


[1] 原文阅读


CSS 是一种很酷很有趣的计算机语言,在这里跟大家分享一些 CSS 实例 Demo,为学习者获取灵感和思路提供一点帮助,希望你们喜欢。

我是 Just,这里是「设计师工作日常」,求点赞求关注!

### 回答1: CSS3画是一种非常强大的画技术,它可以让网页变得更加生、美丽。本文将为大家详细介绍CSS3画的各个属性,包括画名称,持续时间,延迟时间,画速度曲线,以及画的执行次数等。 画名称(animation-name):与CSS中的类似,画名称是指定CSS3画所使用的关键帧画。这个属性用来指定一个已定义的画名称,以便调用该画。 持续时间(animation-duration):定义CSS3画的持续时间。默认值为0,表示没有画效果。通过使用单位“秒(s)”或“毫秒(ms)”来定义画的持续时间。 延迟时间(animation-delay):指定画开始前的等待时长。默认值为0,即画将立即开始。通过使用单位“秒(s)”或“毫秒(ms)”来定义延迟时间。 画速度曲线(animation-timing-function):定义画的速度曲线,可以使画有更加自然的过渡效果。使用缓函数可以让画更具有灵活性,可以在不同的时间点采用不同的速度曲线,从而实现更复杂的画效果。 画执行次数(animation-iteration-count):指定画的执行次数。可以使用数字或者“infinite”关键字来指定画的执行次数。如果将其设置为“infinite”则表示画将一直持续执行下去。 画方向(animation-direction):指定画是否循环播放,并且指定循环播放的方向。这个属性可以使用以下值:normal,reverse,alternate和alternate-reverse。 画填充模式(animation-fill-mode):指定画在开始或结束时对元素的样式应该如何处理。使用这个属性可以让画具有更加平滑的效果,可以避免由于画结束时样式的改变而造成的过度影响。 总之,通过使用上述属性,我们可以为网页添加各种丰富的画效果,让网页更加互、生,也更能吸引用户的眼球。 ### 回答2: CSS3画是网页开发中非常常用的一种技术,通过使用画属性可以给页面的元素增添态的效果。本文将详细介绍CSS3画的各个属性。 1. animation-name 该属性定义要绑定到要执行画的@keyframes的名称。@keyframes是定义画的关键帧的规则集合。 2. animation-duration 该属性定义了画完成所需的时间,以秒或毫秒为单位。 3. animation-timing-function 该属性定义了画执行的时间曲线。通过使用不同的时序函数,可以使画更真实,更有质感。 4. animation-delay 该属性定义画开始之前的延迟时间,以秒或毫秒为单位。 5. animation-iteration-count 该属性定义画的迭代次数。可以将其设置为有限或无限。 6. animation-direction 该属性定义画是否反向播放。 7. animation-fill-mode 该属性定义了元素在画之前和之后的状态。可以设置为none、forwards、backwards或both。 8. animation-play-state 该属性定义画的运行状态。可以将其设置为paused或running。 9. animation animation属性是所有画属性的缩写。它接受每个属性的值作为逗号分隔列表。 总结: 上述就是CSS3画常用属性的详细介绍。CSS3画可以用来为页面增添态效果,提高用户的交互体验。在实际开发中,可以通过不同的画属性以及不同的取值方式,创建出各种不同的画效果。在制作画时,需要考虑兼容性问题,如果要兼容IE9及以下版本,我们还需要使用Vendor Prefix前缀来避免浏览器的兼容问题。 ### 回答3: CSS3画是将元素从一个状态变换到另一个状态的方式,其中使用了一些简单的CSS属性。CSS3画属性可以通过@keyframe规则或transition属性设置。它们可以用来创造一些很棒的效果,比如向上滚的标题、浮按钮等。下面详细介绍一下CSS3画涉及的各种属性。 1. animation-name:用来定义画的名称,这个名称会由animation属性引用。 2. animation-duration:定义画的持续时间。单位为秒(s)和毫秒(ms)。 3. animation-timing-function:定义画的速度变化曲线。这个属性定义了过渡的速度,是一个三次贝塞尔函数。可以设置ease、linear、ease-in、ease-out、ease-in-out和cubic-bezier等值。 4. animation-delay:定义画开始之前的延迟时间。单位为秒(s)和毫秒(ms)。 5. animation-iteration-count:定义画的重复次数。可以设置为一个具体的数字或infinite表示无限次重复。 6. animation-direction:定义画结束后是否负向重复播放。可以设置为normal、reverse、alternate和alternate-reverse。 7. animation-play-state:定义画是运行还是暂停。可以设置为paused和running。 8. animation-fill-mode:定义画结束后如何应用样式。可以设置为none、forwards、backwards和both。 以上是CSS3画中涉及的主要属性。其中最重要的要数animation-iteration-count和animation-duration两个属性。animation-iteration-count可以定义画的重复次数,也可以设置为infinite表示无限次重复。animation-duration用来定义画的持续时间,如果不设置,默认值为0,此时画是不会播放的。在设置这两个属性时,需要根据具体情况来确定合适的数值,以达到最佳的画效果。 总的来说,CSS3画提供了丰富的效果和属性,可以应用于页面中的各种元素和功能,让页面更加生、美观、时尚。在开发过程中,合理应用这些属性,可以使前端开发变得更加有趣和富有挑战性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

设计师工作日常

请我炫个饼🫓

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

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

打赏作者

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

抵扣说明:

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

余额充值