新媒體運營黑科技| SVG圖文交互基礎(chǔ) 02

今天繼續(xù)微信圖文互動svg基礎(chǔ)知識,內(nèi)容來源自《硬核運營》實踐

keytimes屬性

keytimes 是對values值的時間分配比粉捻。
例如:下面這個矩形位移動畫呻待,總時間3s。去程時間4* 0.8=3.2s闷袒,回程時間4* 0.2=0.8s序目。

<!--keyTimes屬性-->
<!--keyTimes屬性臂痕,默認(rèn)第一個值是0,最后一個值是1-->
<svg width="100%"  height="100">
    <rect x="20" y="20" fill="#ec6969" width="100" height="60">
        <animate attributeName="x" values="20;150;20"  dur="3s" keyTimes="0;.8;1">
        </animate>
    </rect>
</svg>

keytimes.gif

keyTimes列表的語義取決于calcMode(插值模式)

插值模式(calcMode) 含義 keyTimes屬性設(shè)置
linear (默認(rèn)值) 每個時間段內(nèi)均勻變化 keyTimes列表第一個時間值為0猿涨,最后一個時間值為1
spline 配合keySplines屬性握童,設(shè)置緩動函數(shù)效果 keyTimes列表第一個時間值為0,最后一個時間值為1
discrete【離散】 沒有中間過渡叛赚,在對應(yīng)時刻呈現(xiàn)對應(yīng)效果 keyTimes列表第一個時間值為0
paced 根據(jù)values數(shù)值均勻變化 無視keyTimes屬性

總結(jié):默認(rèn)情況下澡绩,keyTimes列表第一個時間值為0片效,最后一個時間值為1 。

opacity 不透明度屬性


<!--opacity 不透明度-->
<svg  width="100%" height="100">
    <circle cx="50" cy="50" r="50" fill="red" opacity="1">
    <!--默認(rèn)圖形的opacity=1英古,即圖形是顯示的-->   
        <animate attributeName="opacity" values="1;0;1" dur="3s" begin="1s" repeatcount="indefinite">
        </animate>
    </circle>
</svg>


svg的opacity屬性

opacity ="1" 不透明度最大淀衣,也就是可見的。

opacity="0" 召调,不透明度最信蚯拧(透明度最大),不可見唠叛。

多邊形

01 封閉多邊形屬性 polygon

poly就是很多的意思只嚣,gon 就是角度的意思。

<!--封閉多邊形polygon-->
<svg width="100%" height="100">
    <polygon  points="50,50 100,50 100,100 50,100" fill="#888888" stroke="red" stroke-width="1">
        <animate attributeName="points" values="50,50 100,50 100,100 50,100;50,50 100,50 120,100 30,100" dur="2s" fill="freeze" >
        </animate>

    </polygon>
</svg>

points="50,50 100,50 100,100 50,100"是4邊形的4個坐標(biāo)(50,50)(50,100)(100,100)(50,100)
從坐標(biāo)可以看出來艺沼,初始圖形是一個正方形册舞。

坐標(biāo)格式
同一組不同的坐標(biāo)用空格隔開。兩組坐標(biāo)用分號隔開障般。例如:初始坐標(biāo)和動畫后坐標(biāo)就是用分號隔開调鲸。

svg封閉多邊形

02 折線多邊形 polyline

polygon和polyline最大的區(qū)別就是,前者是封閉的圖形挽荡,而后者是點的連線路徑藐石,是不封閉的。

如果polyline要形成封閉的圖形定拟,需要起點坐標(biāo)和終點坐標(biāo)一樣于微。就跟用筆畫一個正方形一樣,筆尖從起點出發(fā),最后回到起點青自,這樣才是一個封閉的圖形株依。

<!--折線多邊形polyline-->
polyline折線,是不封閉的。
<svg  width="150" height="150">
    <polyline points="50,50 100,50 100,100 50,100"  fill="none" stroke="red" stroke-width="1">
    </polyline>
</svg>

起點坐標(biāo)和終點坐標(biāo)一樣延窜,才能形成封閉圖形
<svg  width="150" height="150">
    <polyline points="50,50 100,50 100,100 50,100 50,50"  fill="none" stroke="red" stroke-width="1">
    
    </polyline>
</svg>
svg的polyline和polygon的區(qū)別

描邊屬性 stroke

首先學(xué)習(xí)幾個單詞
dash 破折號
array 數(shù)組
offset 偏移量
所以恋腕,dasharrey 虛線(虛線就是很多破折號)

實線描邊

<svg width="300" height="150">
    <rect  x="50" y="50" width="100" height="60" fill="#888888" stroke="green" stroke-width="1">
        <animate attributeName="stroke-width" values="3;5;1" dur="2s" fill="freeze" >
        </animate>
    </rect>
</svg>

描述:正方形的描邊寬度動畫,初始描邊寬度stroke-width="1",在2秒內(nèi)需曾,從3->5->1

stroke-width.gif

虛線描邊 storke-dasharrey

stroke-dassarray="值1 值2" 我們知道虛線由【實線段】和【空隙】構(gòu)成吗坚。值1就是實線段的長度祈远,值2就是空隙長度呆万。

<svg width="300" height="150">
    <rect  x="50" y="50" width="100" height="60" fill="#888888" stroke="red" stroke-width="2" stroke-dasharray="15 20">
        <animate attributeName="stroke-dasharray" values="15 20;20 35" dur="1s" repeatcount="indefinite">
        </animate>
    </rect>
</svg>

描述:1s內(nèi),虛線描邊的實線段長度 15->20,空隙 20->25變化车份。

stroke-dasharray.gif

stroke-dashoffset 虛線描邊的偏移量

如何理解這個偏移量呢谋减?

<!--默認(rèn)沒有偏移量,即storke-dassoffset="0"-->
<svg width="300" height="150">
    <rect  x="50" y="50" width="100" height="50" fill="#888888" stroke="red" stroke-width="2" stroke-dasharray="100 400" >
    </rect>
</svg>

注意:這個矩形周長是300扫沼,所以 虛線間隔≥300出爹,就只能看到一條線庄吼。可以利用這個實現(xiàn)描邊動畫严就,后面講总寻。

偏移量為0

正反方向.png

上圖來源:https://blog.csdn.net/sillies_3/article/details/90607648

偏移量為正

偏移量為正,從偏移量為0的位置開始梢为,向反方向偏移(逆時針)渐行。

<svg width="300" height="150">
    <rect  x="50" y="50" width="100" height="50" fill="#888888" stroke="red" stroke-width="2" stroke-dasharray="100 300" stroke-dashoffset="0">
        <animate attributeName="stroke-dashoffset" values="0;100" dur="3s" fill="freeze" repeatcount="1" >
        </animate>
    </rect>
</svg>


偏移量為正.gif

偏移量為負

偏移量為負,從偏移量為0的位置開始铸董,正方向偏移(順時針)

<svg width="300" height="150">
    <rect  x="50" y="50" width="100" height="50" fill="#888888" stroke="red" stroke-width="2" stroke-dasharray="100 300" stroke-dashoffset="0">
        <animate attributeName="stroke-dashoffset" values="0;-100" dur="3s" fill="freeze" repeatcount="1" >
        </animate>
    </rect>
</svg>

偏移量為負.gif

總結(jié):偏移量數(shù)值的正負祟印,和偏移方向剛好相反。

描述:這是一個寬100粟害,高50的長方形蕴忆。虛線長度是300,

虛線描邊動畫

這個有點深度悲幅,學(xué)好了可以非常牛皮套鹅。關(guān)鍵在于路徑的表達,如果你用路徑表示一個房子汰具,那么用描邊動畫就會形成用筆畫房子的動畫芋哭。

實線長度=間隔長度=路徑長度=偏移量,這個描邊動畫的臨界條件郁副。
簡單點說减牺,就是虛線中的實線段貫穿全程,而看不見空隙存谎。

虛線描邊動態(tài)效果

<!--虛線動態(tài)描邊效果-->
<svg width="300" height="150">
    <rect  x="50" y="50" width="100" height="50" fill-opacity="0" stroke="red" stroke-width="2" stroke-dasharray="300 300" stroke-dashoffset="0">
        <animate attributeName="stroke-dashoffset" values="300;0" dur="3s" repeatcount="1">
        </animate>
    </rect>
</svg>

我們按照矩形路徑拔疚,描邊就會如圖所示。

描邊動畫.gif

所以既荚,如果用代碼寫出心形路徑稚失,就會繪畫出一個心型,再加上表白詞恰聘。絕對是一個表白利器句各。不說了,為了擺脫單身晴叨,我要去學(xué)習(xí)了凿宾。

未完待續(xù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市兼蕊,隨后出現(xiàn)的幾起案子初厚,更是在濱河造成了極大的恐慌,老刑警劉巖孙技,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件产禾,死亡現(xiàn)場離奇詭異排作,居然都是意外死亡,警方通過查閱死者的電腦和手機亚情,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門妄痪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人楞件,你說我怎么就攤上這事拌夏。” “怎么了履因?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵障簿,是天一觀的道長。 經(jīng)常有香客問我栅迄,道長站故,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任毅舆,我火速辦了婚禮西篓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘憋活。我一直安慰自己岂津,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布悦即。 她就那樣靜靜地躺著吮成,像睡著了一般。 火紅的嫁衣襯著肌膚如雪辜梳。 梳的紋絲不亂的頭發(fā)上粱甫,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機與錄音作瞄,去河邊找鬼茶宵。 笑死,一個胖子當(dāng)著我的面吹牛宗挥,可吹牛的內(nèi)容都是我干的乌庶。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼契耿,長吁一口氣:“原來是場噩夢啊……” “哼瞒大!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起宵喂,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤糠赦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后锅棕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拙泽,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年裸燎,在試婚紗的時候發(fā)現(xiàn)自己被綠了顾瞻。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡德绿,死狀恐怖荷荤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情移稳,我是刑警寧澤蕴纳,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站个粱,受9級特大地震影響古毛,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜都许,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一稻薇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧胶征,春花似錦塞椎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至钱雷,卻和暖如春莺戒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背急波。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工从铲, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人澄暮。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓名段,卻偏偏與公主長得像,于是被迫代替她去往敵國和親泣懊。 傳聞我的和親對象是個殘疾皇子伸辟,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容