在CSS動畫中使用motion-path

来源:http://www.cnblogs.com/manongjc/archive/2016/04/02/5348240.html
-Advertisement-
Play Games

本文章向碼農們介紹motion-path在css動畫中的使用實例分析,需要的碼農可以參考一下。 使用motion path,作者可以讓圖像物體按照指定的路徑運動。谷歌瀏覽器積極的要實現這個CSS特征,我想主要motion-path是SVG動畫里獨特的亮點,而谷歌瀏覽器已經決定放棄SVG SMIL,所 ...


本文章向碼農們介紹motion-path在css動畫中的使用實例分析,需要的碼農可以參考一下。

使用motion path,作者可以讓圖像物體按照指定的路徑運動。谷歌瀏覽器積極的要實現這個CSS特征,我想主要motion-path是SVG動畫里獨特的亮點,而谷歌瀏覽器已經決定放棄SVG SMIL,所以,實現了CSS中的motion-path,也就能很好的說服哪些喜歡SVG動畫的用戶了。

CSS里的motion-path預防是這樣的:

motion-path: path('M100,250 C 100,50 400,50 400,250');

下麵是三個在CSS里使用motion-path的實例演示。

註意:目前只有谷歌瀏覽器實現了這個功能,請使用最新版的谷歌瀏覽器觀看。

<h1>CSS Motion Path 動畫演示</h1>
  <p><strong>註意:</strong>目前只有谷歌瀏覽器實現了這個功能,請使用最新版的谷歌瀏覽器觀看。</p>
  <div class="canvas">
  <div class="square square1 path">方塊1</div>
  <div class="square square2 path">方塊2</div>
    <svg width="580" height="400" viewBox="0 0 580 400">
      <path stroke="#FF2D1A" d="m232.771103,329.79953c-102.829727,-78.900574 -139.598976,-128.812088 -139.897499,-189.912598c-0.270775,-55.699638 45.11657,-109.459106 92.15345,-109.14909c23.485428,0.155491 73.868423,20.65649 91.709885,37.317997c8.990051,8.395851 13.248871,7.567986 33.261871,-6.467178c54.464142,-38.195642 107.654175,-38.997543 142.101776,-2.141006c55.054443,58.903046 45.031464,129.243813 -28.812988,202.207039c-39.259857,38.791107 -124.994751,107.608795 -134.060852,107.608795c-2.761017,0 -28.16275,-17.759216 -56.455643,-39.463959l0,0z" stroke-width="1.5" fill="#fff" />
      <path stroke="#181c21" class="path plane" d="m38.056561,4.386863c-0.586136,0 -1.107681,0.240613 -1.547703,0.677117c-0.43961,0.436077 -0.803249,1.060985 -1.105896,1.841453c-0.60508,1.560679 -0.977318,3.753087 -1.180946,6.378638c-0.203182,2.620523 -0.23745,5.671947 -0.153076,8.938395c-7.240604,2.970366 -21.925862,9.103491 -23.10556,10.472843c-1.570616,1.823208 -1.063179,3.912663 -0.430244,5.299751l24.142197,-4.913754c0.510326,6.4035 1.235912,12.745731 1.868229,17.715393c-2.360985,0.690937 -6.76815,2.055286 -7.677814,2.901402c-1.253193,1.165512 -1.253193,4.929501 -1.253193,4.929501l9.88092,-0.80365c0.232769,1.622536 0.378304,2.569187 0.378304,2.569187l0.014431,0.085464l0.077927,0l0.181957,0l0.077995,0l0.014435,-0.085464c0,0 0.145256,-0.946732 0.378227,-2.569187l9.883835,0.80365c0,0 0,-3.763988 -1.253193,-4.929501c-0.91,-0.846428 -5.320366,-2.213829 -7.680691,-2.904591c0.631054,-4.954422 1.355366,-11.272388 1.865307,-17.655201l23.859238,4.85675c0.632927,-1.387089 1.143303,-3.476543 -0.427315,-5.299751c-1.165123,-1.352394 -15.495529,-7.349104 -22.825523,-10.358953c0.087616,-3.308828 0.055405,-6.40176 -0.150143,-9.052284l0,-0.00631c-0.20372,-2.622749 -0.576351,-4.812962 -1.180988,-6.372328c-0.30254,-0.780253 -0.663174,-1.405215 -1.103001,-1.841453c-0.440044,-0.436505 -0.961491,-0.677117 -1.547714,-0.677117l0,0z" fill-opacity="null" stroke-opacity="null" stroke-width="2" fill="#05111c" />
    </svg>
  </div>

 

<!-- Port of animateMotion example http://www.w3.org/TR/SVG/animate.html#AnimateMotionElement -->
<svg width="5cm" height="3cm"  viewBox="0 0 500 300"
     xmlns="http://www.w3.org/2000/svg" version="1.1"
     xmlns:xlink="http://www.w3.org/1999/xlink" >
  <rect x="1" y="1" width="498" height="298"
        fill="none" stroke="blue" stroke-width="2" />
  <path id="path1" d="M100,250 C 100,50 400,50 400,250"
        fill="none" stroke="blue" stroke-width="7.06"  />
  <circle cx="100" cy="250" r="17.64" fill="blue"  />
  <circle cx="250" cy="100" r="17.64" fill="blue"  />
  <circle cx="400" cy="250" r="17.64" fill="blue"  />
  <!-- Here is a triangle which will be moved about the motion path.
       It is defined with an upright orientation with the base of
       the triangle centered horizontally just above the origin. -->
  <path id="triangle" d="M-25,-12.5 L25,-12.5 L 0,-87.5 z"
        fill="yellow" stroke="red" stroke-width="7.06"  >
     
  </path>
  
</svg>

 

<svg xmlns="http://www.w3.org/2000/svg" width="700" height="450" viewBox="500 150 1400 900">
<rect x="595" y="423" width="610" height="377" fill="blue"/>
<polygon points="506,423 900,190 1294,423" fill="yellow"/>
<polygon points="993,245 993,190 1086,190 1086,300" fill="red"/>
<path d="M900,190  L993,245 V201  A11,11 0 0,1 1004,190  H1075  A11,11 0 0,1 1086,201  V300  L1294,423 H1216  A11,11 0 0,0 1205,434  V789  A11,11 0 0,1 1194,800  H606  A11,11 0 0,1 595,789  V434  A11,11 0 0,0 584,423  H506 L900,190" fill="none" stroke="black" stroke-width="13"  stroke-linejoin="round" stroke-linecap="round"  />
<path id="first" d="M30,0 H-10  A10,10 0 0,0 -20,10  A20,20 0 1,1 -40,-10  H20     A10,10 0 0,1 30,0     M-40,20  A10,10 1 0,0 -40,0  A10,10 1 0,0 -40,20  M0,0"   transform="translate(0,0)" fill="green" stroke="black" stroke-width="5"  stroke-linejoin="round" stroke-linecap="round"  fill-rule="evenodd" />
<path id="second" d="M30,0 H-10  A10,10 0 0,1 -20,-10  A20,20 0 1,0 -40,10  H20     A10,10 0 0,0 30,0     M-40,-20  A10,10 1 0,0 -40,0  A10,10 1 0,0 -40,-20  M0,0"   transform="translate(0,0)" fill="forestgreen" stroke="black" stroke-width="5"  stroke-linejoin="round" stroke-linecap="round"  fill-rule="evenodd" />
</svg>

原文地址:http://www.manongjc.com/article/660.html

相關閱讀:

SVG里的幾個動畫元素的用法介紹

原生javascript實現的一個簡單動畫

JavaFX Animation動畫之地球升起

JavaFX Animation之路徑動畫實例

純css寫的手風琴切換實例


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

-Advertisement-
Play Games
更多相關文章
  • 這個星期接到一個新的任務:解決HQ(一個用JAVA開發的開源的運維監控平臺)現在遇到的snmp升級到3.0後bug。公司用的HQ是4.6版本。於是,我把項目從gitlab上clone下來後,就開始了我的填坑之旅。坑了幾天坑,到目前,正常情況,應該只有最後一個坑了,應該是關於tomcat運行環境的。閑 ...
  • 安裝python3.5可能使用的依賴 到python官網找到下載路徑, 用wget下載 解壓tgz包 把python移到/usr/local下麵 刪除舊版本的python依賴 進入python目錄 配置 編譯 make 編譯,安裝 刪除舊的軟鏈接,創建新的軟鏈接到最新的python Enjoy yo ...
  • 頭文件 my_sql.h 實現文件 my_sql.cpp 調用實例 main.cpp ...
  • Atitit.eclipse git使用 1. Git vs svn1 1.1. 直接記錄快照,而非差異比較1 1.2. Git的patch則不依附於branch,commit和commit之間的關係是一個GRAPH3 1.3. hg 本地有更改的時候,可以直接 pull 遠程代碼,然後在自己當前更 ...
  • 首先,我不是一個開發者,只是業餘學習者。其次我的文化水平很低,寫這個主要是記錄一下當前對於這塊的理解,因為對於一個低水平 的業餘學習者來說,忘記是很平常的事,因為接觸、應用的少,現在理解,可能過段時間就會忘了,自己記錄下來應該可以少走些彎路,以免從頭再來查找資料。 另外,如果我的記錄能幫忙到一些朋友 ...
  • 極驗目前的用戶超過7萬家網站,日均驗證量1億次,作為一家專註於驗證安全服務的公司,極驗所要面臨的併發壓力主要表現在以下幾點: 日益增加的用戶併發量。 驗證請求是全動態過程,不能夠進行緩存。 每一次請求都會造成資料庫的讀寫。 處理請求需要耗費CPU大量的時間進行模型的計算。 作為抗擊黑產的第一線,可能 ...
  • Element類型用於表現XML或HTML元素,提供對元素標簽名,子節點及特性的訪問。原型鏈的繼承關係為 某節點元素.__proto__->(HTML某元素Element.prototype)->HTMLElement.prototype->Element.prototype->Node.proto ...
  • html文本垂直居中對齊,代碼如下: <div id="box" style="height:100px; line-height:100px; border:1px solid #cccccc;margin:50px;"> <span style="vertical-align:middle;di ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...