svg+css3制作hover線框效果

線框按鈕.gif

<u>查看demo</u>

<html>結(jié)構(gòu)

    <body>
        <div class="svg-wrapper">
            <svg height="60" width="200" xmlns="http://www.w3.org/2000/svg">
            <rect class="shape" height="60" width="200"/
            </svg>
            <div class="text">hover</div>
        </div>
    </body>

Graphics)是基于可擴(kuò)展標(biāo)記語言(XML),用于描述二維矢量圖形的一種圖形格式。矩形的寬高分別為200px遍坟,60px。
注意開頭的部分xml聲明晴股,與svg的命名空間xmlns愿伴、等部分,主要是考慮兼容性的問題电湘;這些部分在HTML5中基本都可以不用寫了(寫不寫還是自己瞧著辦吧)隔节。

<css>樣式

html,body {
    background: #aaa;
    height: 100%;
    text-align: center;
    overflow: hidden;
}
.svg-wrapper {
    cursor: pointer;
    width: 200px;
    height: 60px;
    margin: 0 auto;
    position: relative;
    top: 50%;
    transform: translateY(-50%);
}

.shape {
    fill: transparent;   /*--矩形的內(nèi)部填充設(shè)置為透明,只留下邊框--*/
    stroke-dasharray: 60px 460px;
    stroke-dashoffset: -330px;
    stroke-width: 2px;
    stroke: #fff;
}
.text {
    line-height: 32px;
    color: #fff;
    font-size: 22px;
    position: relative;
    top:-45px;
}
/*--設(shè)置動畫屬性--*/
@keyframes draw {
      0%{stroke-dasharray: 60px 460px;
        stroke-dashoffset: -330px;
        stroke-width: 2px;}
    100%{stroke-dasharray: 520px;
        stroke-dashoffset: 0;
        stroke-width: 2px;}
}
.svg-wrapper:hover .shape {
    -webkit-animation: draw .5s ease forwards;
    animation: draw .5s ease forwards;
}

stroke-dasharray 表示虛線描邊寂呛≡踅耄可選值為:none, <dasharray>, inherit. 其中,none表示不是虛線昧谊;<dasharray>為一個(gè)逗號或空格分隔的數(shù)值列表刽虹。表示各個(gè)虛線端的長度∧匚埽可以是固定的長度值,也可以是百分比值胖缤;inherit表繼承尚镰。
stroke-dashoffset 表示虛線的起始偏移∧睦可選值為:<percentage>, <length>, inherit. 百分比值狗唉,長度值,繼承涡真。

我們現(xiàn)在都試想一下分俯,如果stroke-dasharray和stroke-dashoffset值都很大,超過了描邊路徑的總長度哆料,會怎么樣缸剪?
用中文解釋就是,一根火腿腸12厘米东亦,要在上面畫虛線杏节,虛線間隔有15厘米,如果沒有dashoffset典阵,則火腿腸前面15厘米會被辣椒醬覆蓋奋渔!實(shí)際上只有12厘米,因此壮啊,我們看到的是整個(gè)火腿腸都有辣椒醬〖稻ǎ現(xiàn)在,dashoffset也是15厘米歹啼,也就是虛線要往后偏移15厘米玄渗,結(jié)果减江,辣椒醬要抹在火腿腸之外,也就是火腿腸上什么辣椒醬也沒有捻爷。如果換成上面的直線SVG辈灼,也就是直線看不見了。我們把dashoffset值逐漸變小也榄,則會發(fā)現(xiàn)巡莹,火腿腸上的辣椒醬一點(diǎn)一點(diǎn)出現(xiàn)了,好像辣椒醬從火腿腸根部涂抹上去一樣甜紫。

兩個(gè)屬性都設(shè)置成最大降宅,然后stroke-dashoffset慢慢減小,您會看到直線慢慢出來了囚霸,這就是SVG路徑繪制動畫的原理腰根。

參考來源

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市拓型,隨后出現(xiàn)的幾起案子额嘿,更是在濱河造成了極大的恐慌,老刑警劉巖劣挫,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件册养,死亡現(xiàn)場離奇詭異,居然都是意外死亡压固,警方通過查閱死者的電腦和手機(jī)球拦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來帐我,“玉大人坎炼,你說我怎么就攤上這事±辜” “怎么了谣光?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長矿咕。 經(jīng)常有香客問我抢肛,道長,這世上最難降的妖魔是什么碳柱? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任捡絮,我火速辦了婚禮,結(jié)果婚禮上莲镣,老公的妹妹穿的比我還像新娘福稳。我一直安慰自己,他們只是感情好瑞侮,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布的圆。 她就那樣靜靜地躺著鼓拧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪越妈。 梳的紋絲不亂的頭發(fā)上季俩,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天,我揣著相機(jī)與錄音梅掠,去河邊找鬼酌住。 笑死,一個(gè)胖子當(dāng)著我的面吹牛阎抒,可吹牛的內(nèi)容都是我干的酪我。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼且叁,長吁一口氣:“原來是場噩夢啊……” “哼都哭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起逞带,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤欺矫,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后掰担,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體汇陆,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年带饱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片阅羹。...
    茶點(diǎn)故事閱讀 40,505評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡勺疼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出捏鱼,到底是詐尸還是另有隱情执庐,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布导梆,位于F島的核電站轨淌,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏看尼。R本人自食惡果不足惜递鹉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望藏斩。 院中可真熱鬧躏结,春花似錦、人聲如沸狰域。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至屈溉,卻和暖如春塞关,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背子巾。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工帆赢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人砰左。 一個(gè)月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓匿醒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親缠导。 傳聞我的和親對象是個(gè)殘疾皇子廉羔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評論 2 359

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

  • 最近重構(gòu)博客,瀏覽了許多很酷炫的網(wǎng)站僻造,發(fā)現(xiàn)他們的logo很多用到了描邊動畫憋他。仔細(xì)研究一番,發(fā)現(xiàn)其實(shí)還蠻簡單的髓削。主要...
    空腹熊閱讀 3,681評論 0 4
  • svg無疑是現(xiàn)在前端比較熱門的圖形格式,且很實(shí)現(xiàn)很多動畫效果宝泵,以下發(fā)布的好啰,為svg描邊效果的教程。 自己雖然有cs...
    泱泱悲秋閱讀 4,922評論 5 13
  • 上個(gè)項(xiàng)目用到svg實(shí)現(xiàn)一個(gè)水流的動畫儿奶,鑒于沒學(xué)習(xí)幾天框往,所以懂的也不多,就此分享一下闯捎。首先svg是什么椰弊,svg可縮放...
    會飛的豬l閱讀 4,143評論 0 5
  • 人生總有那么些日子娱仔,事事都提不起興趣沐飘,簡直要溺死在無盡的絕望和無聊中。 十年前的一個(gè)冬天,我失業(yè)了耐朴。離過年只有兩個(gè)...
    0be7333ea3e5閱讀 686評論 5 6
  • 讀了那么多書借卧,跟別人說起來,總不能侃侃而談筛峭,書讀過之后铐刘,就忘記了。這只是因?yàn)槲覀冞€缺少一些簡單的方法影晓×常《如何閱讀一...
    詹瓦閱讀 449評論 0 2