TP Notes
全部
CSS
SVG
資源收集
HTML
其它
關於我
Translate
2020年11月18日 星期三
CSS 狀態改變動畫
之前寫了一篇 [CSS 動畫](https://yhtpnotes.blogspot.com/2020/05/css.html) 時,忘了應該先寫這個狀態變化的動畫,大部份的應用都是用在滑鼠移到上面時的用動畫方式改變狀態,實際上,這個功能對於所有狀態變化都可以變成動畫 參數說明: ``` transition [動畫持續時間] [delay 多久開始] [timing-function] transition-delay [delay 多久開始] transition-duration [動畫持續時間] transition-property [指定改變的屬性] transition-timing-function [動畫 timing] ``` 我個人偏好不使用 transition-property ,這樣可以更自由的使用這個功能 首先先來一個最簡單的範例: 在 **#a11181_div:hover** 裡頭加了 **transition: 1s** 後 ,滑鼠移過去時,顏色會慢慢的變成黃色,同時長度從 100px 慢慢變成 200px, 當滑鼠移開時,因為在 **#a11181_div** 加上了 **transition: 0.2s;** ,會以動畫方式很快的恢復原狀,如果沒有加上 **transition** ,狀態會瞬間改變,不會有動畫效果,另外還有加上 **transition-delay** , 所以會等 0.5 秒後才開始動畫 而下面的 [SET] 和 [UNSET] 是利用 javascript 去做設定,結果一樣會以動畫顯示, 當用 javascript 設定時,是直接寫在元件上,所以 hover 改變 width 就沒作用了,而 [CSS SET] 和 [CSS UNSET] 的是直接修改本來的 CSS 設定,所以不影響 hover 。 ``` $mmcode(r1) ```
SET
UNSET
CSS SET
CSS UNSET
2020年11月14日 星期六
戲說線段
線段有很多屬性,無意間看到有人利用這些屬性做動畫相當有意思,決定先來整理線段的屬性 # stroke-linecap
圖1:
polyline
圖2:(預設)
stroke-linecap="butt"
圖3:
stroke-linecap="round"
圖4:
stroke-linecap="square"
# stroke-linejoin
圖1:(預設)
stroke-linejoin="miter"
圖2:
stroke-linejoin="round"
圖3:
stroke-linejoin="bevel"
圖4:(可能無作用)
stroke-linejoin="miter-clip"
圖5:(可能無作用)
stroke-linejoin="arcs"
# stroke-dasharray 這是一個陣列型態,奇數為要顯示的點數,偶數為不顯示的點數
[10,20] 等於 [10,20,10,20,....] 換言之如果陣列是基數 [10,20,30] 等於 [10,20,30,10,20,30,....]
圖1:
stroke-dasharray="10"
圖2:
stroke-dasharray="10,20"
圖3:
stroke-dasharray="10,20,30"
# stroke-dashoffset 虛線起始的點數
圖1:
stroke-dashoffset="0"
圖2:
stroke-dashoffset="10"
圖3:
stroke-linecap="round"
利用 stroke-dashoffset 來產生動畫 ``` $mmcode(r1) ```
搭配 path 可以做出相當有意思的動畫 ``` $mmcode(r3) ```
也可以用在滑鼠移動時的動態效果 ``` $mmcode(r4) ```
2020年11月13日 星期五
Inline SVG
SVG 本身被視為圖檔,那麼能不能畫好一個 SVG 後,即時拿來用在 html 中的 img 或 background-image 呢 ? 方法還是有的,只是必須透過 javascript 才行 主要用的技巧是 **
data:image/svg+xml;base64,[data]
**
那麼如果不用 base64 呢 ? 也可以用 **
data:image/svg+xml;charset=UTF-8,[data]
** 或 **
data:image/svg+xml;utf8,[data]
** 而這個 **[data]** 必須用 escape 轉換 在實測過程中發現,平常使用 SVG 時並沒有加上完整檔頭,以致於花了些時間才找到圖片出不來的原因 SVG 檔頭宣告 : **
xmlns="http://www.w3.org/2000/svg"
** ```
``` 範例如下 : ``` $mmcode(r1) ```
較新的文章
較舊的文章
首頁
訂閱:
文章 (Atom)