150個帶動畫效果的SVG扁平風格圖標

来源:http://www.cnblogs.com/w2bc/archive/2016/03/30/5336879.html
-Advertisement-
Play Games

這是一組基於SVG製作的精美動畫圖標。這組圖標共150個,分為6大類。這些圖標都是扁平風格的圖標,有一些還帶有長陰影效果,所有的圖標在滑鼠滑過時都帶有一定的動畫效果。 使用方法 線上預覽 源碼下載 這些SVG圖標都使用<span>元素作為容器,通過jQuery來動態添加SVG表簽。例如瀏覽器圖標的H ...


這是一組基於SVG製作的精美動畫圖標。這組圖標共150個,分為6大類。這些圖標都是扁平風格的圖標,有一些還帶有長陰影效果,所有的圖標在滑鼠滑過時都帶有一定的動畫效果。

 使用方法

線上預覽    源碼下載

 HTML結構

這些SVG圖標都使用<span>元素作為容器,通過jQuery來動態添加SVG表簽。例如瀏覽器圖標的HTML代碼為:

<span class="svg-icon flat-filled" id="filled-browser"></span>          
 JavaScript

在這個DEMO中,SVG圖標的代碼都是通過jQuery來動態添加的。你也可以將這些SVG代碼直接添加到<span>容器中。

var browserFilled = " <svg class='flat_icon' xmlns='http://www.w3.org/2000/svg' width='100px' height='100px' viewBox='0 0 100 100' ><path class='circle' d='M50,2.125c26.441,0,47.875,21.434,47.875,47.875S76.441,97.875,50,97.875C17.857,97.875,2.125,76.441,2.125,50S23.559,2.125,50,2.125z'/><g class='icon'><path class='base' d='M28.692,24.431h42.615c2.353,0,4.262,1.908,4.262,4.262v42.615c0,2.354-1.909,4.262-4.262,4.262H28.692c-2.354,0-4.262-1.908-4.262-4.262V28.692C24.431,26.338,26.339,24.431,28.692,24.431z'/><path class='screen' d='M27.982,38.637h44.036v32.672H27.982V38.637z'/><path class='top' d='M24.431,24.431h51.139v11.364H24.431V24.431z'/><path class='green' d='M47.159,27.271c1.57,0,2.841,1.273,2.841,2.841s-1.271,2.841-2.841,2.841c-1.569,0-2.841-1.272-2.841-2.841S45.589,27.271,47.159,27.271z'/><path class='orange' d='M38.344,27.271c1.569,0,2.841,1.273,2.841,2.841s-1.271,2.841-2.841,2.841s-2.841-1.272-2.841-2.841S36.776,27.271,38.344,27.271z'/><path class='red' fill='' d='M29.858,27.271c1.569,0,2.841,1.273,2.841,2.841s-1.272,2.841-2.841,2.841c-1.569,0-2.841-1.272-2.841-2.841S28.289,27.271,29.858,27.271z'/></g></svg>"
$(browserFilled).appendTo('#filled-browser');         
 CSS樣式

SVG圖標的動畫效果通過CSS來完成。下麵的代碼中沒有使用各個瀏覽器廠商的首碼。

#filled-browser .green { fill: #FFF }
#filled-browser .orange { fill: #FFF }
#filled-browser .red { fill: #FFF }   
/* 滑鼠滑過時修改瀏覽器的顏色 */
#filled-browser:hover .circle { fill: #B1EB5B }
#filled-browser:hover .screen { fill: #d6d6d6 }
#filled-browser:hover .base { fill: #b0b0b0 }
#filled-browser:hover .top { fill: #8F8F8F }
#filled-browser:hover .green { fill: #AEE42D }
#filled-browser:hover .orange { fill: #FFD02C }
#filled-browser:hover .red { fill: #E64545 }
/* 滑鼠滑過時瀏覽器的動畫 */ 
#filled-browser:hover .screen {
    animation-delay: 0.2s;
    animation-timing-function: linear;
    animation-iteration-count: 1;
    transform-origin: 50% 50%;
    animation-duration: .4s;
    animation-name: left;
}
#filled-browser:hover .base {
    animation-timing-function: linear;
    animation-iteration-count: 1;
    transform-origin: 50% 50%;
    animation-duration: .4s;
    animation-name: right;
}
#filled-browser:hover .top {
    animation-delay: 0.1s;
    animation-timing-function: linear;
    animation-iteration-count: 1;
    transform-origin: 50% 50%;
    animation-duration: .4s;
    animation-name: right-top;
}
#filled-browser:hover .green {
    animation-timing-function: linear;
    animation-iteration-count: 1;
    transform-origin: 50% 50%;
    animation-duration: .4s;
    animation-name: left-top;
}
#filled-browser:hover .orange {
    animation-delay: 0.05s;
    animation-timing-function: linear;
    animation-iteration-count: 1;
    transform-origin: 50% 50%;
    animation-duration: .4s;
    animation-name: left-top;
}
#filled-browser:hover .red {
    animation-timing-function: linear;
    transform-origin: 50% 50%;
    animation-duration: .4s;
    animation-name: left-top;
} 
/* 幀動畫 */
@keyframes left-top { 
    0% { transform: translate(-100px, -100px) scale(3,3) }
    1% { transform: translate(-100px, -100px) scale(3,3) }
    100% { transform: translate(0px, 0px) scale(1,1) }
}
@keyframes right-top { 
    0% { transform: translate(100px, -200px) scale(3,3) }
    1% { transform: translate(100px, -200px) scale(3,3) }
    100% { transform: translate(0px, 0px) scale(1,1) }
}
@keyframes right { 
    0% { transform: translate(100px, 0px) }
    1% { transform: translate(100px, 0px) }
    100% { transform: translate(0px, 0px) }
}
@keyframes left { 
    0% { transform: translate(-100px, 0px) }
    1% { transform: translate(-100px, 0px) }
    100% { transform: translate(0px, 0px) }
}          

各個SVG圖標的完整實現代碼請參考下載文件。

via:http://www.w2bc.com/article/114332


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 要想縮短首屏載入時間,思路一般是減少http請求次數和降低每次的請求量。本文中使用現成的lazyload.js插件,文末會放出下載地址。 lazyload.js可以實現圖片分批次載入,不是一次性載入完畢再分批次展現。使用該插件有個註意的地方,圖片要加上寬高。因為預設圖是1像素的,所以如果沒有給圖片限 ...
  • rem/em/px/pt的基友關係 px 像素相對長度單位,相對於顯示器屏幕解析度而言 em 相對長度單位,根據其父元素來設置字體大小 pt point,是印刷行業常用單位,等於1/72英寸 rem CSS3新增的一個相對單位,是根據網頁的跟元素(html)來設置字體大小 rem應用於適配 rem的 ...
  • 本篇主要介紹HTML5規範的內容和頁面上的架構變動。 目錄 1. HTML5介紹 1.1 介紹 1.2 內容 1.3 瀏覽器支持情況 2. 創建HTML5頁面 2.1 <!DOCTYPE> 文檔類型聲明 2.2 <html>標簽 2.3 <meta>標簽 設置字元編碼 2.4 引用樣式表 2.5 引 ...
  • 1、JavaScript提示“未結束的字元串常量”錯誤解決方法 1.1 JavaScript引用時,使用的字元語言不一致. 比如:<script type=”text/javascript” src=”xxx.js” charset=”UTF-8″>.xxx.js文件內部使用的是GB2312的格式, ...
  • 1、標簽input在type="file"時,name是必須屬性 ...
  • 1、子DIV塊中設置margin-top時影響父DIV塊位置的問題 ...
  • JS中所有的function都是一個閉包,不過一般來說,嵌套的function所產生的閉包更為強大,也是大部分時候我們所謂的閉包。 我們可以把閉包理解為定義在一個函數內的函數。 當點擊一個節點時,按照預期,應該彈出節點的序號,但實際彈出的是-1. 函數在執行的時候才初始化活動對象,當第一個函數執行時 ...
  • 工作好久了一直沒有恆心去做點什麼。今年開始準備把所有的基礎知識都理一理。然後寫點博客方便以後自己查詢。 最近在整理javascript的基礎知識。寫了很久的代碼發現自己到現在也只是使用js框架對於原生的js瞭解的並不深入。 var merge=function(s,p){for(prop in s) ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...