CSS-纯CSS实现一个粒子动效的按钮-路羽博客-第1张图片

CSS-纯CSS实现一个粒子动效的按钮

CSS-纯CSS实现一个粒子动效的按钮-路羽博客-第2张图片

作者: 路羽

原创资源分享博客

CSS-纯CSS实现一个粒子动效的按钮-路羽博客-第3张图片微信小程序
CSS

路羽博客 资源分享

前言介绍

按钮(button)作为网页设计中最常见的组件之一,充当着向网站访问者传达信息、接受互动操作的角色。通常来说,它们非常平凡,只是被放置在网页上进行了点击跳转、提交表单等简单操作。当你偶然间发现一个这样的按钮,它可以是各种颜色、造型、文字、动态效果的形式,无论你是在购物网站、社交媒体、新闻资讯平台还是其他任何场景下发现,它都能引起你的关注,让你忍不住多点几次。经典的例子包括“赞”、“收藏”、“加入购物车”等需要醒目突出、立即响应的操作按钮,它们成为了网站用户体验中不可或缺的一部分,往往也是成功的关键因素之一。

那具体怎么利用纯CSS实现来着

CSS-纯CSS实现一个粒子动效的按钮-路羽博客-第4张图片

实现步骤

html部分

<button class="button">Button</button>

css部分

定义一个按钮元素的样式。该按钮具有粉色背景色 (#ff0081),在顶部和底部分别有1em的填充,在左右两侧有2em的填充,白色文本颜色,4px的border-radius,无边框,以及当鼠标悬停时改变指针样式表示可点击。按钮还具有box-shadow效果,在悬停到按钮上时,使用transition属性使按钮的背景色和box-shadow平滑地过渡。

 .button {
  display: inline-block;
  padding: 1em 2em;
  background-color: #ff0081;
  color: #fff;
  border-radius: 4px;
  border: none;
  cursor: pointer;
  position: relative;
  box-shadow: 0 2px 25px rgba(233, 30, 99, 0.5);
  outline: 0;
  transition: transform ease-in 0.1s, background-color ease-in 0.1s,  box-shadow ease-in 0.25s;
}

定义 ::before 伪元素,其使用radial-gradient创建背景色为多个同色和透明度的圆的渐变动画效果,并使用动画效果使气泡变大并在动画结束时淡出。

.button::before{
  position: absolute;
  content: '';
  left: -2em;
  right: -2em;
  top: -2em;
  bottom: -2em;
  pointer-events: none;
  transition: ease-in-out .5s;
  background-repeat: no-repeat;
  background-image: radial-gradient(circle, #ff0081 20%, transparent 20%), 
  radial-gradient(circle, #ff0081 20%, transparent 20%), 
  radial-gradient(circle, #ff0081 20%, transparent 20%), 
  radial-gradient(circle, #ff0081 20%, transparent 20%), 
  radial-gradient(circle, #ff0081 20%, transparent 20%), 
  radial-gradient(circle, #ff0081 20%, transparent 20%), 
  radial-gradient(circle, #ff0081 20%, transparent 20%), 
  radial-gradient(circle, #ff0081 20%, transparent 20%), 
  radial-gradient(circle, #ff0081 20%, transparent 20%),
  radial-gradient(circle, #ff0081 20%, transparent 20%), 
  radial-gradient(circle, #ff0081 20%, transparent 20%), 
  radial-gradient(circle, #ff0081 20%, transparent 20%),
  radial-gradient(circle, #ff0081 20%, transparent 20%), 
  radial-gradient(circle, #ff0081 20%, transparent 20%), 
  radial-gradient(circle, #ff0081 20%, transparent 20%), 
  radial-gradient(circle, #ff0081 20%, transparent 20%);
  background-size: 10% 10%, 20% 20%, 15% 15%, 20% 20%, 18% 18%, 10% 10%, 15% 15%, 10% 10%, 18% 18%,
  15% 15%, 20% 20%, 18% 18%, 20% 20%, 15% 15%, 10% 10%, 20% 20%;
  background-position: 18% 40%, 20% 31%, 30% 30%, 40% 30%, 50% 30%, 57% 30%, 65% 30%, 80% 32%, 15% 60%,
  83% 60%, 18% 70%, 25% 70%, 41% 70%, 50% 70%, 64% 70%, 80% 71%;
  animation: bubbles ease-in-out .75s forwards;
}

定义一个名为bubbles的关键帧动画,用于在button元素被active激活时调用。在动画中,通过background-position属性和多个参数设置不同位置的背景颜色,来创造一种气泡飘浮的效果。这些气泡颜色是由外围向内逐渐变深的渐变,并伴随着平移和缩放。当点击按钮时,会使.button元素的背景色变成粉色,并附加一个阴影效果。同时,::before伪元素的动画将停止并将背景大小设置为0。

.button:active {
  transform: scale(0.95);
  background-color: #f3037c;
  box-shadow: 0 2px 25px rgba(233, 30, 99, 0.5);
}
.button:active::before {
  animation: none;
  background-size: 0;
}
@keyframes bubbles {
  0% {
    background-position: 18% 40%, 20% 31%, 30% 30%, 40% 30%, 50% 30%, 57% 30%, 65% 30%, 80% 32%, 15% 60%,
  83% 60%, 18% 70%, 25% 70%, 41% 70%, 50% 70%, 64% 70%, 80% 71%;
  }
  50% {
    background-position: 10% 44%, 0% 20%, 15% 5%, 30% 0%, 42% 0%, 62% -2%, 75% 0%, 95% -2%, 0% 80%,
  95% 55%, 7% 100%, 24% 100%, 41% 100%, 55% 95%, 68% 96%, 95% 100%;
  }
  100% {
    background-position: 5% 44%, -5% 20%, 7% 5%, 23% 0%, 37% 0, 58% -2%, 80% 0%, 100% -2%, -5% 80%,
  100% 55%, 2% 100%, 23% 100%, 42% 100%, 60% 95%, 70% 96%, 100% 100%;
    background-size: 0% 0%;
  }
}
分享到:
未经允许不得转载:

作者: 路羽, 转载或复制请以 超链接形式 并注明出处 路羽博客
原文地址: 《CSS-纯CSS实现一个粒子动效的按钮》 发布于2023-6-5

评论

          
       
切换注册

登录

忘记密码?

您也可以使用第三方帐号快捷登录

切换登录

注册

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏