Css效果:变速旋转灯带


在浏览网站的过程中,偶然看到一个有趣的效果,有一圈旋转滑动的渐变色,围绕着一个框,做变速运动。就特别好奇是怎么实现的。所以就F12研究了一下。

看了,一下不禁感叹他的奇淫技巧,其实就是 CSS @keyframes 自定义一个旋转一圈的效果。放在元素中的before伪类里面执行。外面包裹一层overflow:hidden 超出隐藏多余的。就可以实现这个变速光带的效果了。

代码如下:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      .help-box .rank-title {
        position: sticky;
        bottom: 20px;
        margin-top: 80px;
        padding: 2px;
        overflow: hidden;
        height: 40px;
        width: 430px;
        border-radius: 12px;
      }
      .help-box .rank-title .w {
        display: inline-flex;
        align-items: center;
        margin-bottom: 20px;
        background-color: #f7f7f7;
        border-radius: 12px;
        height: 40px;
        cursor: pointer;
        padding: 0 3px;
        position: relative;
        box-shadow: 0 0 20px 1px #fff;
      }
      .help-box .rank-title .w:before {
        content: "";
        position: absolute;
        background: linear-gradient(to bottom, #6b69f8, #d14bd8);
        width: 100%;
        height: 40px;
        z-index: -2;
        left: 50%;
        top: 50%;
        transform-origin: 0 0;
        animation: rotate 3s infinite linear;
      }
      @keyframes rotate {
        to {
          transform: rotate(1turn);
          /* 将元素顺时针旋转一整圈 */
        }
      }
      .help-box .rank-title .w:after {
        content: "";
        position: absolute;
        background-color: #000;
        width: calc(100% - 4px);
        height: calc(100% - 4px);
        top: 2px;
        left: 2px;
        border-radius: 10px;
        z-index: -1;
      }
      .help-box .rank-title .w span {
        padding: 0 18px;
        border-radius: 12px;
        height: 34px;
        font-size: 14px;
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        color: #999;
      }
      .help-box .rank-title .w span.active {
        background-color: #fff;
        font-weight: 700;
        color: #333;
      }
      .sponsor-btn {
        background: linear-gradient(to right, #6b69f8, #d14bd8);
        margin: 0 15px;
        border-radius: 50px;
        color: #fff;
        line-height: 1;
        position: relative;
        padding: 0 42px 0 12px;
        height: 26px;
        cursor: pointer;
        display: flex;
        align-items: center;
      }
      .sponsor-btn img {
        height: 30px;
        position: absolute;
        right: 8px;
        pointer-events: none;
        max-width: 100%;
      }
      .medium-zoom-image {
        cursor: pointer;
        cursor: zoom-in;
        transition: transform 0.3s cubic-bezier(0.2, 0, 0.2, 1) !important;
      }
      .sponsor-btn .span {
        font-size: 13px;
        color: #fff;
        line-height: 1;
        cursor: pointer;
      }
    </style>
  </head>
  <body>
    <div class="help-box">
      <div class="rank-title">
        <div class="w">
          <span class="active">富豪榜</span><span>大神榜</span
          ><span>好人榜</span><span>赞助榜</span>
          <div class="sponsor-btn">
            <div class="span">赞助</div>
            <img src="./wow.svg" class="medium-zoom-image" />
          </div>
        </div>
      </div>
    </div>
  </body>
</html>


声明:BenBonBen博客|版权所有,违者必究|如未注明,均为原创

转载:转载请注明原文链接 - Css效果:变速旋转灯带


过去太迟,未来太远,当下最好