微信圖文SVG交互 圣誕雪花效果

微信圖文SVG交互 圣誕雪花效果

加拿大航空AirCanada 圣誕驚喜 |機票大獎,感恩有你

原理

交互放在 svg 圖里, 給 svg 圖加 png 背景圖片, 保持 png 尺寸與 svg 圖 viewBox 尺寸一致.

畫雪花

微信圖文里元素不能用 id, 在 defs 里定義的雪花與漸變無效, 只能用 circle 一個套一個套實現(xiàn)漸變的效果, 用不同大小與數(shù)量的 circle 實現(xiàn)雪花大小.

<g transform="translate(30 -10)">
    <animateTransform attributeName="transform" type="translate" from="30 -10" to="30 6000" begin="+0s" dur="30s" repeatCount="indefinite"/>
    <circle cx="0" cy="0" r="6" fill="rgba(255,255,255,.7)"/>
    <circle cx="0" cy="0" r="7" fill="rgba(255,255,255,.6)"/>
    <circle cx="0" cy="0" r="8" fill="rgba(255,255,255,.5)"/>
    <circle cx="0" cy="0" r="9" fill="rgba(255,255,255,.4)"/>
    <circle cx="0" cy="0" r="10" fill="rgba(255,255,255,.3)"/>
    <circle cx="0" cy="0" r="11" fill="rgba(255,255,255,.2)"/>
    <circle cx="0" cy="0" r="12" fill="rgba(255,255,255,.1)"/>
  </g>

雪花掉落動畫

<animateTransform attributeName="transform" type="translate" from="30 -10" to="30 6000" begin="+0s" dur="30s" repeatCount="indefinite"/>
  • 所有雪花從畫板(svg 圖)頂外部位置向下用 from to 向下緩慢移動到畫面下外部.
  • 其中用 repeatCount="indefinite" 使循環(huán)播放.
  • durbegin 控制雪花掉落開始時間與時長.
  • 然后就是復制, 粘貼, 調(diào)整雪花 x 軸位置與掉落開始時間與時長, 還有大小.

為防止后期老修改背景圖長度, 讓動畫 to 的 y 軸離圖底遠遠地, 如此圖高 5200, 雪花掉到 6000. 5200 是之前從 5000 修改來的. 萬一他們加元素導致 底圖到了 5800 高, 那 6000 的結束位置還是可以不修改的. 萬一高于 6000 了, 唉, 那只能選擇 6000" begin=" 全局替換了. 所以一定要寫整齊, 不然不好全局正則替換.

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 背景 當 JavaScript 被 Netscape 公司發(fā)明出來時,它被用來做一些瑣細的事情,比如校驗表單、計算...
    locky丶閱讀 2,352評論 0 5
  • SVG開篇 SVG是可縮放的矢量圖,在計算機中有兩種圖形,一種是位圖,一種是矢量圖 位圖傳統(tǒng)的jpg / png ...
    七分之二十四閱讀 467評論 0 0
  • 一、什么是SVG? SVG指可伸縮矢量圖形(Scalable Vector Graphics); SVG用來定義用...
    清心挽風閱讀 1,484評論 1 3
  • 作者: 阮一峰www.ruanyifeng.com/blog/2018/08/svg.html 一、概述 SVG ...
    grain先森閱讀 3,012評論 0 12
  • 下班后去買水果,我所在的這個地方明明是在市區(qū),附近卻沒有一家像樣的水果超市。所以來到附近一個小區(qū)的后門,那里有一條...
    幽狂影亂閱讀 579評論 0 4

友情鏈接更多精彩內(nèi)容