成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

神奇的進度條!水缸進度動畫效果怎么實現的?

開發 前端
最重點的就是水波,其實這個水波就是個障眼法罷了,我畫張圖你們就懂了,其實就是一個圓角正方形,一直在旋轉和上升下降,讓用戶有一種水波的視覺感!

最近看到一個非常有趣的動畫效果:水波進度動畫,想了一下實現思路,分享給大家~

效果如下

圖片圖片

圖片圖片

基本組件代碼

先把最基礎的組件代碼樣式寫出來,其實無非就是四個部分:

1、圓形水缸

2、水波

2、百分比數字

3、進度條

我們先把圓形水缸、百分比數字、進度條畫出來,水波待會再畫

圖片圖片

可以看到初步效果已經出來了!

圖片圖片

水波效果

最重點的就是水波,其實這個水波就是個障眼法罷了,我畫張圖你們就懂了,其實就是一個圓角正方形,一直在旋轉和上升下降,讓用戶有一種水波的視覺感~

圖片圖片

所以我們可以畫一個圓角正方形,并且讓他一直旋轉即可

圖片圖片

圖片圖片

并且我們要讓這個水波效果,隨著百分比的增加而上升,隨著百分比的減少而下降,所以得監聽百分比

圖片圖片

圖片圖片

現在可以發現已經有水波效果了!

圖片圖片

但是感覺水溢出來了,所以需要給水缸設置一下溢出隱藏!

圖片圖片

最終實現效果:

圖片

完整代碼

<template>
  <div class="wave-container">
    <!-- 水缸 -->
    <div class="main">
      <!-- 百分比數字 -->
      <div class="main-number">{{ percent }}</div>
      <!-- 水波效果 -->
      <div ref="wave" class="wave"></div>
    </div>
    <!-- 進度條 -->
    <Slider v-model:value="percent" class="percent-bar" :tipFormatter="null" />
  </div>
</template>

<script setup lang="ts">
import { ref, watch } from 'vue';
import { Slider } from 'ant-design-vue';

const percent = ref(0);

const wave = ref<HTMLDivElement | null>(null);

// 監聽百分比,計算 top
watch(
  percent,
  v => {
    const waveEle = wave.value;
    if (waveEle) {
      waveEle.style.top = `${200 * (1 - v / 100)}px`;
    }
  },
  {
    immediate: true,
  },
);
</script>

<style scoped lang="less">
.wave-container {
  display: flex;
  flex-direction: column;
  align-items: center;

  .main {
    position: relative;
    width: 200px;
    height: 200px;
    border-radius: 50%;
    background: #fff;
    border: #fff solid 5px;
    display: flex;
    justify-content: center;
    align-items: center;
    // 增加樣式隱藏溢出
    overflow: hidden;

    .main-number {
      font-size: 100px;
      z-index: 1;
      user-select: none;
    }
  }

  @keyframes rotateAnimation {
    from {
      transform: rotate(0deg);
    }
    to {
      transform: rotate(360deg);
    }
  }

  .wave {
    position: absolute;
    top: 200px;
    width: 400px;
    height: 400px;
    background: rgb(168, 168, 231);
    border-radius: 40%;
    animation: rotateAnimation 2s linear infinite;
  }

  .percent-bar {
    width: 200px;
    background: #fff;
  }
}
</style>

責任編輯:武曉燕 來源: 前端之神
相關推薦

2012-07-13 13:52:54

Canvas

2024-08-06 14:29:37

2015-07-31 11:19:43

數字進度條源碼

2009-08-17 17:15:48

C# 進度條效果

2023-12-11 17:15:05

應用開發波紋進度條ArkUI

2024-06-13 08:15:00

2009-11-24 15:23:50

PHP文件上傳進度條

2009-08-17 14:41:47

C#進度條實現

2009-08-17 15:48:47

C# WinForm進

2015-01-12 12:13:03

Android進度條ProgressDia

2015-01-12 09:30:54

Android進度條ProgressDia

2013-03-12 10:35:06

CSS 3

2024-12-02 09:37:51

2015-08-03 11:39:20

擬物化進度條

2011-07-05 15:16:00

QT 進度條

2023-11-30 11:38:29

CSS網頁進度條

2009-07-21 14:49:55

XmlHttpRequ文件上傳進度條

2012-07-31 09:53:33

HTML5進度條

2009-06-06 18:54:02

JSP編程進度條

2023-07-18 15:49:22

HTMLCSS
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文天堂在线一区 | 97久久精品午夜一区二区 | 伊人艹 | 羞羞视频网| 久草精品在线 | 欧美日韩一区在线 | 香蕉一区 | 亚洲网站在线观看 | 午夜久久久 | 中文字幕一区二区三区在线观看 | 中文字幕韩在线第一页 | 亚洲欧美一区二区三区情侣bbw | 日本一区二区视频 | 91免费视频 | 欧美精品久久久久 | 久久中文字幕一区 | 成人黄色电影在线播放 | 久在线视频播放免费视频 | 不卡一区二区三区四区 | 国产精品久久午夜夜伦鲁鲁 | 日韩综合 | 91小视频在线 | 伊人久久伊人 | 日韩成人免费视频 | 91偷拍精品一区二区三区 | 男女羞羞视频免费 | 免费看欧美一级片 | 国产一级视频在线观看 | 中文字幕乱码一区二区三区 | 免费看国产片在线观看 | www.99热.com| 亚洲精品视频三区 | 逼逼网 | 欧美综合一区二区三区 | 国产成人精品一区二区三 | 午夜影院官网 | 久久精品亚洲精品 | 国产亚洲精品久久久久动 | 91精品无人区卡一卡二卡三 | 日韩欧美一区二区三区 | 一级免费在线视频 |