给你的网站添加一个中国新年灯笼挂件(网页/博客美化)

效果

预览

实际

使用

默认

<body>

  <!-- 在页面最后引入 -->
  <script src="https://cdn.jsdelivr.net/gh/fz6m/china-lantern@1.1/dist/china-lantern.min.js"></script>

</body>

php

<?php
    date_default_timezone_set('PRC');
    
    $year = date("Y");
    $month = date("n");
    $day = intval(date("d"));
    
    $is_current_year = $year == 2021;
    $is_new_year_day = $month == 1 && $day < 4; // 1.1 ~ 1.3
    $is_spring_festival = $month == 2 && $day > 9 && $day < 27; // 2.10 ~ 2.26
    $is_show = $is_new_year_day || $is_spring_festival;
    
    if($is_current_year && $is_show) {
        echo '<script src="https://cdn.jsdelivr.net/gh/fz6m/china-lantern@1.1/dist/china-lantern.min.js"></script>';
    }
?>

注:使用 php 时只需加入 footer.php 等公共文件部分即可

实现

对于单个灯笼,我们采取以下节点结构:

  <!-- 灯笼主 warpper ,用于 fixed 定位 -->
  <div class="lantern__warpper">
  
    <!-- 灯笼核心 box ,渲染红色椭圆形背景 -->
    <div class="lantern__box">
    
      <!-- 灯笼上吊线 line -->
      <div class="lantern__line"></div>
      
      <!-- 灯笼 box 内的黄色线 circle (外围线) -->
      <div class="lantern__circle">
      	<!-- 灯笼 box 内的黄色线 ellipse (内围线) -->
        <div class="lantern__ellipse">
          <!-- 灯笼 box 内的文字 -->
          <div class="lantern__text">{textFirst}</div>
        </div>
      </div>
      
      <!-- 灯笼吊尾 tail -->
      <div class="lantern__tail">
      	<!-- 灯笼吊尾下部的方形部分 rect -->
        <div class="lantern__rect"></div>
        <!-- 灯笼吊尾的圆形节点 junction ,这里使节点在 rect 之后会显得层级更自然 -->
        <div class="lantern__junction"></div>
      </div>
      
    </div>
    
  </div>

相信看到节点设计后已经很一目了然了,这是一个纯 css 设计的灯笼节点。

核心摇摆动画:

  $deg-swing: 8deg;
  
  @keyframes lantern-swing {
    0% {
      transform: rotate(#{-$deg-swing});
    }

    100% {
      transform: rotate(#{$deg-swing});
    }
  }

此外:

  1. 采用 scss 进行全动态设计,便于开发者只需要修改对应的变量值即可 diy 自己的灯笼样式。

  2. 全自动构建流程,支持修改灯笼文字。

  3. 最好的打包与 tree shake + css hack 即开即用。

  4. 支持手机端适配。

项目

中国灯笼:fz6m / china-lantern

使用建议:每逢元旦和新春假期期间使用。

如果想了解更多打包的技术细节,可以参考学习 rollup 打包三部曲:

《 rollup2.3 构建工具/功能库教程(一):从 babel7 到postcss8 》

《 rollup2.3 构建工具/功能库教程(二):js 压缩与配置成型 》

《 rollup2.3 构建工具/功能库教程(三):细化打包与工具库模板 》

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值