巧用css圓角實現有點意思的加載動畫

2021-02-19 趣談前端

作為一名前端工程師, 需要對css技巧有充分的研究和了解, 接下來筆者將會帶大家一起掌握如何用css的圓角屬性來實現有點意思的加載動畫.

如果想學習更多css實用技巧, 可以參考筆者以下的文章:css的border屬性和border-radius屬性筆者在前面的文章中也分享過了如何利用border來實現不同的形狀, 比如三角形, 如下為原理圖:

利用這個原理我們只要把元素的border-radius 設置為圓形(比如50%), 我們是不是就能實現一個餅圖了呢? 我們來看看效果:

以上是設置一個邊的border-color的樣子和設置四個邊的border-color的樣子, 所以說實現餅圖用css就夠用了. 代碼如下:

.rotate-animate {
    border:100px solid #f3f3f3;
    border-radius:50%;
    border-top:100px solid #2842d8;
}

如果你想實現不同比例的餅圖, 其實只要合理計算好border-width即可, 有了以上知識, 我們結合animation動畫是不是可以實現下面的加載動畫了?

.rotate-animate {
    border:100px solid #f3f3f3;
    border-radius:50%;
    border-top:100px solid #2842d8;
    animation:rotate 2s linear infinite;
}
@keyframes rotate{
    0%{
        transform: rotate(0deg);
    }
    100%{
        transform:rotate(360deg);
    }
}

我們在做css3動畫時經常會用到transform 和 animation, 所以建議大家把這兩個屬性掌握.實現更優雅的圓環加載動畫有了以上的css知識, 我們再來思考一下, 如何用最簡短的代碼實現一個圓環呢? 其實也很簡單, 我們在上面用到了圓角和border來做圓形和餅圖, 如果我們設置一個元素的寬度width和高度height, 並且背景透明(transparent), 會怎麼樣呢, 我們來看看:

.rotate-animate {
    border:16px solid #f3f3f3;
    border-radius:50%;
    border-top:16px solid #2842d8;
    width:100px;
    height:100px;
}

那麼我們做圓環加載動畫, 就非常簡單了, 利用上面寫的旋轉動畫, 我們來看看效果:

<style>
    .rotate-animate {
        border:16px solid #f3f3f3;
        border-radius:50%;
        border-top:16px solid #2842d8;
        width:100px;
        height:100px;
        animation:rotate 2s linear infinite;
    }
    .rotate-animate.fill-color {
        margin-left: 20px;
        border-color: #2842d8 #d1b516 #cf4928 #27c965;
    }
    @keyframes rotate{
        0%{
            transform: rotate(0deg);
        }
        100%{
            transform:rotate(360deg);
        }
    }
</style>
<!-- html -->
<div class="rotate-animate"></div>
<div class="rotate-animate fill-color"></div>

我們利用此特性還可以實現更多有意思的圖案和加載動畫, 大家可以細細品嘗. 筆者這裡推薦2篇比較使用的css文章:

開源項目更新日誌目前H5-Dooring可視化搭建平臺還在持續更新, 主要更新如下:覺得有用 ?喜歡就在看,順便點個吧,你的支持是我最大的鼓勵!

你的支持,是我努力的動力

相關焦點

  • 使用簡單 好看的CSS加載動畫源碼
    今天小編分享的css-spinners,它自帶的CSS加載樣式很漂亮,圖案色彩豐富,花樣多多,就算不用它的CSS,也可以按它的動畫來做成GIF圖像。loading樣式有花形、心形、指針、圓形旋轉、進度條以及常見的菊花加載圖案:使用教程CSS Spinners除了輕量級外,使用也十分的簡單,下面來看看教學:STEP 1: 引入CSS文件加載動畫樣式有單個以及全部,如果用戶只需要一個加載動畫,就選擇對應的CSS文件。
  • 5分鐘實現漂亮的CSS加載動畫,純CSS實現加載動畫
    該屬性是一個用逗號分隔陰影的列表,每個陰影由 2-4 個長度值、一個可選的顏色值和一個可選的 inset 關鍵字來規定。省略長度的值是 0。值說明h-shadow必需的。水平陰影的位置。允許負值v-shadow必需的。垂直陰影的位置。允許負值blur可選。模糊距離spread可選。陰影的大小color可選。陰影的顏色。inset可選。
  • 前端: 輕鬆教你使用純css實現水波動畫
    , 接下來筆者就來帶大家介紹如何用css3實現 H5-Dooring編輯器 中的水波動畫.動畫拆解要想用純css實現曲線, 我們第一反應就是用border-radius這個屬性, 比如說實現一個圓, 我們只需要如下設置:.circle {  border-radius: 50%;}實現橢圓,扇形, 半橢圓這些, 只需要設置不同邊的圓角即可, 如下:.circle {  border-radius: 50%
  • div+css無圖片實現圓角矩形
    在做頁面的時候,很多時候會用圓角矩形來妝點一下,但如果用圖片的話,即要用到圖片又要用到大量的代碼,勢必增加了頁面的重量在頁面的時候剛好要用到圓角矩形,於是寫了以下方法,分享一下 以下為引用的內容
  • 10個CSS和jQuery的加載中(loading)動畫效果實現
    10個CSS和jQuery的加載中(loading)動畫效果實現 以往web開發中都使用Gif來實現加載中的效果,但是隨著技術的發展我們也可以使用jQuery和CSS來實現加載中的效果
  • 如何用純css打造類materialUI的按鈕點擊動畫並封裝成react組件
    正文首先我們看一下materialUI的按鈕點擊效果:本質上也是用了css3動畫的特性, 筆者查看原始碼和通過點擊發現materialUI會根據點擊位置不同而作不同位置的動畫,這個有點意思.我們先不講這麼複雜的例子,下面通過css3的方案來實現一個類似的效果.筆者實現的效果如下:
  • CSS3 PK Photoshop:圓角和框投影
    相關素材:https://webdesigntutsplus.s3.amazonaws.com/tuts/181_css3_vs_psd/Samples.zip演示地址:https://webdesigntutsplus.s3.amazonaws.com/tuts/181_css3_vs_psd/Samples
  • CSS之IE8兼容陰影和圓角
    ie8不支持css中的陰影和圓角,因此我們採用插件pie.htc來實現。(下載連結:http://pan.baidu.com/s/1mhRS7Le 密碼:cd3n)下載完成添加到項目中,建議放在js或者css文件夾裡面,編寫css時在需要做兼容的地方加上「behavior:url(pie.htc路徑);」,示例代碼如圖1所示:
  • 精通react/vue組件設計教你實現一個極具創意的加載(Loading)組件
    首先我們設計的不是後臺管理系統專用的加載動畫,而是作為一個C端產品的功用型加載動畫.我們都知道加載動畫的作用是:在用戶等待網頁時能看到有用的信息,比如網站介紹,引導, 公司信息等,緩解用戶焦慮. 作為一名產品經理或者用戶體驗師, 這種個性化的加載體驗效果往往是更好的.
  • 盤點web前端動畫技術,css動畫是通過什麼實現的?
    、網頁樣式(css)、網頁互動(JavaScript)三部分組成,對於新手來說理解他們之前的關係有些困難,我們可以把網頁前端比成一座房子,html代表房子的基礎和架構、css表示房子的裝修風格是中式、歐式還是其他風格的,JavaScript代表這個房子中能夠產生交互的東西,比如門和窗戶它們都有打開和關閉的動作。
  • Vue中使用animate.css實現動畫效果
    在實際開發過程中,有些頁面需要一些炫酷的動畫效果這時我們可以通過animate來實現Animate是一個非常實用的動畫庫官網: https://animate.style/Animate動畫庫裡面有很多實用的動畫效果展示如下:應用實例效果展示:使用方法:在vue中使用animate.css第一步:安裝
  • 前端工程師必備的css3動畫技巧
    本文轉載自【微信公眾號:趣談前端,ID:beautifulFront】經微信公眾號授權轉載,如需轉載與原文作者聯繫本文是筆者之前文章用css3實現驚豔面試官的背景即背景動畫(高級附源碼)的續篇也是介紹css3技巧的文章,因為css這塊知識難點不是很多,更多的在於去熟悉css3的新特性和基礎理論知識。
  • 推薦9款使用CSS3實現的超酷動畫效果
    本周極客社區推薦9款使用CSS3實現的超酷前端動畫效果。希望對大家有所幫助!CSS3的Hover效果類庫 - Hover.cssHover.css是由Ian Lunn開發的一個開源的CSS3懸浮效果類庫,這些強大的懸浮效果可以應用到按鈕,logo,圖片等等上。非常容易應用到你自己的元素上,或者作為創意展示。支持CSS和SASS。如何使用?
  • 入門ae教程:科技類的加載動畫,非常酷炫的效果,附帶教程
    效果圖今天這個教程屬於初學者的教程,很簡單,但是科技類的加載動畫,我個人覺得都是非常酷的(每天5分鐘,充實一整天)教程將三個素材,分別單獨預合成,命名為大圓、中圓、小圓進入預合成調整合成設置,將合成的大小改為圓的大小,讓圓的中心點保持在畫布中心三個素材都用
  • 《前端5分鐘》之使用純css實現網站換膚和焦點圖切換動畫
    本文轉載自【微信公眾號:趣談前端,ID:beautifulFront】經微信公眾號授權轉載,如需轉載與原文作者聯繫今天我們來繼續復盤一些工作中常用的css技巧和知識,以便我們可以更加優雅的用css實現富有動感的網站.
  • 前端工程師必備的css3動畫技巧(附源碼)
    本文是筆者之前文章用css3實現驚豔面試官的背景即背景動畫(高級附源碼)的續篇也是介紹css3技巧的文章,因為css這塊知識難點不是很多
  • 面試題聯盟之CSS篇
    1、CSS3的新特性實現圓角(border-radius)陰影(box-shadow)文字加特效(text-shadow)預處理器(sass/less/stylus/postcss)這些都是類css語言,通過webpack編譯可以轉成瀏覽器可讀的css,並且賦予css更強大的功能。
  • 利用CSS、JavaScript及Ajax實現圖片預加載的三大方法
    方法一:用CSS和JavaScript實現預加載實現預加載圖片有很多方法,包括使用CSS、JavaScript及兩者的各種組合。這些技術可根據不同設計場景設計出相應的解決方案,十分高效。方法二:僅使用JavaScript實現預加載上述方法有時確實很高效,但我們逐漸發現它在實際實現過程中會耗費太多時間。相反,我更喜歡使用純JavaScript來實現圖片的預加載。下面將提供兩種這樣的預加載方法,它們可以很漂亮地工作於所有現代瀏覽器之上。
  • 巧用CSS cross-fade(.)實現背景圖像半透明效果
    前段時間有挺火的一個小遊戲,拿兩張圖片疊加在一起,看看複合人物的效果,用css怎麼實現呢?可能大部分人想到的是將兩個img用定位的方式疊加在一起,分別設置透明度,當然這個辦法是可行的,其實css還提供了一個cross-fade()方法,講兩張圖片作為背景圖引入,可以實現相同的效果。