<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      實現(xiàn)環(huán)形進度條效果【一】

      好基友扔過來一張效果圖,簡單分析下,一起看看如何實現(xiàn)它吧。

      1. 一個半環(huán)形用于表示 0 - 100%。
      2. 半環(huán)形開頭有一個圓點作為修飾。
      3. 半環(huán)形兩端需要呈現(xiàn)為圓角。

      通過 div 實現(xiàn)

      先畫一個長方形。

      <div class="graph"></div>
      
      .graph {
        width: 200px;
        height: 100px;
        border: 20px solid rgb (58, 215, 217);
      }
      

      接下來把長方形轉(zhuǎn)換為半環(huán)形。

      .graph {
         width: 200px;
         height: 100px;
         border: 20px solid rgb (58, 215, 217);
      +  border-radius: 0 0 200px 200px;
      +  border-top: none;
      }
      

      給環(huán)形開頭添加圓點修飾,實際等于添加到長方形的左上角。

      <div class="graph">
      +  <div class="dot"></div>
      </div>
      
      .graph {
      + position: relative;
        width: 200px;
        height: 100px;
        border: 20px solid rgb (58, 215, 217);
        border-radius: 0 0 200px 200px;
        border-top: none;
      }
      
      +.dot {
      +  position: absolute;
      +  top: 5px;
      +  left: -15px;
      +  z-index: 9999;
      +  width: 12px;
      +  height: 12px;
      +  border-radius: 50%;
      +  background-color: #fff;
      +  transform-origin: center top;
      +}
      


      環(huán)形有了,如何實現(xiàn)進度條效果呢?讓半環(huán)形旋轉(zhuǎn),并隱藏超出部分。可以給元素添加 transform 使其旋轉(zhuǎn)。

      .graph {
        position: relative;
        width: 200px;
        height: 100px;
        border: 20px solid rgb (58, 215, 217);
        border-radius: 0 0 200px 200px;
        border-top: none;
      + transform: rotate (150deg);
      }
      

      半環(huán)形并沒有根據(jù)中心點旋轉(zhuǎn),通過 transform-origin: center top 設(shè)置原點為中間頂部,即環(huán)形的中心。

      .graph {
        position: relative;
        width: 200px;
        height: 100px;
        border: 20px solid rgb (58, 215, 217);
        border-radius: 0 0 200px 200px;
        border-top: none;
      + transform-origin: center top;
        transform: rotate (150deg);
      }
      

      給環(huán)形添加一個父元素,并設(shè)置超出部分隱藏。

      <div class="graph-wrapper">
        <div class="graph">
          <div class="dot"></div>
        </div>
      </div>
      
      .graph-wrapper {
        width: 200px;
        height: 100px;
        overflow: hidden;
        transform: rotate (90deg);
      }
      

      動態(tài)設(shè)置環(huán)形元素的 rotate 角度實就可以實現(xiàn)進度條效果了。0 - 100% 對應 180 - 360deg。

      可以通過 JavaScript 設(shè)置半環(huán)形的進度。

      function calculateValue(range, percentage) {
        const  [start, end] = range
        const result = start + (end - start) * percentage / 100;
        return result;
      }
      
      function renderGraph(percentage) {
        const deg = calculateValue ([180, 360], percentage);
        const el = document.querySelector ('.graph')
        el.style.transform = `rotate (${deg}deg)`
      }
      
      renderGraph (30) // 30%
      

      總結(jié)

      我們先使用 div 畫了一個長方形,添加 borderborder-radius 屬性使其轉(zhuǎn)換為半環(huán)形,又通過 transform 屬性使半環(huán)形可以旋轉(zhuǎn)。接下來給半環(huán)形套了一層元素,超出部分隱藏,以實現(xiàn)進度條效果。

      在博文開頭處,我們對效果圖進行了分析。其中,第 3 點 “半環(huán)形兩端需要呈現(xiàn)為圓角” 還沒有被支持。限于篇幅,將在接下來的博文中實現(xiàn),最終效果如下圖。

      posted @ 2023-11-26 15:19  guangzan  閱讀(1129)  評論(2)    收藏  舉報
      主站蜘蛛池模板: 亚洲中文字幕亚洲中文精 | 国产乱妇乱子在线视频| 国产麻豆9l精品三级站| 久久亚洲精品11p| 国产真实younv在线| 国产av国片精品一区二区| 久久久无码精品午夜| 国产在线精彩自拍视频| 波多野结衣的av一区二区三区| 国产又黄又爽又不遮挡视频| 四虎成人在线观看免费| jizz国产免费观看| 在线a级毛片无码免费真人| 无码天堂va亚洲va在线va| 亚洲精品一区二区三区色| 久久无码中文字幕免费影院| 国产99视频精品免费专区| 久久这里只精品热免费99| 亚洲精品国产中文字幕| 久久香蕉国产线看观看怡红院妓院| 国产香蕉久久精品综合网| 国产一区二区不卡在线| 少妇被爽到高潮喷水久久欧美精品| 欧美日产国产精品| 乱人伦人妻中文字幕无码久久网| 依依成人精品视频在线观看| 国产乱啊有帅gv小太正| 99RE8这里有精品热视频| 99久久精品看国产一区| 开心五月婷婷综合网站| 亚洲精品亚洲人成人网| 吕梁市| 亚洲成人av在线系列| 东京热高清无码精品| 人妻少妇精品中文字幕| 韩国午夜福利片在线观看| 久久99精品国产自在现线小黄鸭 | 精品亚洲一区二区三区在线播放| 国产精品视频一区二区不卡| 樱花草视频www日本韩国| 国产亚洲综合欧美视频|