程序员开发实例大全宝库

网站首页 > 编程文章 正文

现代CSS:使用 CSS 制作五彩纸屑按钮

zazugpt 2024-08-12 03:21:20 编程文章 34 ℃ 0 评论

本文通过 CSS 和一个开源包来实现五彩纸屑按钮效果。

1.创建页面框架

使用 html:5div.wrapper>button.btn-confetti 快速创建页面容器。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <div class="wrapper">
    <button class="btn-confetti"></button>
  </div>
</body>
</html>

2.增加基础样式

增加对 body 元素的 grid 布局,同时给它设置了高度 100vh,使子元素水平垂直居中。给 button 按钮增加了渐变背景色,并使用了 transition 动画。注意样式中使用了原生 CSS 嵌套语法。

body {
  display: grid;
  place-items: center;
  height: 100vh;
}

.wrapper {
  position: relative;
  .btn-confetti {
    font-size: 1.15rem;
    font-weight: 700;
    padding: 0.75em 1.5em;
    border: 0;
    border-radius: 100vmax;
    background: linear-gradient(90deg, #a8ff78 50%, #78ffd6);
    cursor: pointer;
    transition: transform 150ms ease-in-out;

    &:hover {
      transform: scale(1.1);
    }
  }
}

3.实现五彩纸屑

五彩纸屑使用了一个开源的 NPM 包 canvas-confetti,你可以通过 npm i canvas-confetti 快速安装使用,在本 demo 中直接使用的是 CDN 链接。

我们首先给按钮绑定一个点击事件,当按钮被点击时触发五彩纸屑的喷发的效果。

<script src="https://cdn.jsdelivr.net/npm/canvas-confetti@1.9.0/dist/confetti.browser.min.js"></script>
<script>
const $confettiBtn = document.querySelector('.btn-confetti');
$confettiBtn.addEventListener('click', () => {
  const $canvas = document.createElement('canvas');
  const $wrapper = document.querySelector('.wrapper');

  $canvas.width = 600;
  $canvas.height = 600;

  $wrapper.appendChild($canvas);

  // 初始化 confetti
  const confettiBtn = window.confetti.create($canvas);

  // 喷发后
  confettiBtn().then(() => $canvas.remove());
});
</script>

4.效果预览

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表