国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > CSS > 正文

純css實(shí)現(xiàn)Material Design中的水滴動(dòng)畫(huà)按鈕

2024-07-11 08:31:36
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

前言

大家平時(shí)應(yīng)該經(jīng)常見(jiàn)到這種特效,很炫酷不是嗎

這是谷歌Material Design中最常見(jiàn)的特效了,市面上也有很多現(xiàn)成的js庫(kù),用來(lái)模擬這一特效。但是往往要引入一大堆jscss,其實(shí)在已有的項(xiàng)目中,可能只是想加一個(gè)這樣的按鈕,來(lái)增強(qiáng)用戶(hù)體驗(yàn),這些js庫(kù)就顯得有些過(guò)于龐大了,同時(shí)由于是js實(shí)現(xiàn),很多時(shí)候還要注意加載問(wèn)題。

那么,有沒(méi)有辦法用css來(lái)實(shí)現(xiàn)這一特效呢?

思路

其實(shí)就是一個(gè)動(dòng)畫(huà),一個(gè)正圓從小變大,用css3中的動(dòng)畫(huà)很容易實(shí)現(xiàn)

示例代碼

@keyframes ripple{ from { transform: scale(0); opacity: 1; } to { transform: scale(1); opacity: 0; }}

通常用js來(lái)實(shí)現(xiàn)的方式很簡(jiǎn)單,就是給點(diǎn)擊元素添加一個(gè)class,然后再動(dòng)畫(huà)結(jié)束后移除該class

示例代碼

var btn = document.getElementById('btn');btn.addeventlistener('click',function(){ addClass(btn,'animate')},false)btn.addeventlistener('transitionend',function(){//監(jiān)聽(tīng)css3動(dòng)畫(huà)結(jié)束 removeClass(btn,'animate')},false)

那么如何通過(guò)css來(lái)實(shí)現(xiàn)動(dòng)畫(huà)的觸發(fā)呢?

CSS實(shí)現(xiàn)

css中與鼠標(biāo)交互的偽類(lèi)主要有

hover鼠標(biāo)經(jīng)過(guò) :active鼠標(biāo)按下 :focus鼠標(biāo)聚焦 :checked鼠標(biāo)選中

很多情況下,我們頁(yè)面中的效果都是通過(guò)hover來(lái)實(shí)現(xiàn)的,鼠標(biāo)放上去觸發(fā)一個(gè)效果,離開(kāi)還原,但是如果放上去馬上離開(kāi),那么動(dòng)畫(huà)也會(huì)馬上結(jié)束。

我們先試一下。

結(jié)構(gòu)

這是我們寫(xiě)好的頁(yè)面結(jié)構(gòu)和樣式

<style>.btn{ display: block; width: 300px; outline: 0; overflow: hidden; position: relative; transition: .3s; cursor: pointer; user-select: none; height: 100px; text-align: center; line-height: 100px; font-size: 50px; background: tomato; color: #fff; border-radius: 10px;}</style><a class="btn">button</a>

很簡(jiǎn)單,就是一個(gè)普通的按鈕樣式

下面我們?cè)诎粹o中添加我們需要的正圓。

我們用偽元素來(lái)實(shí)現(xiàn)

.btn:after{ content: ''; position: absolute; width: 100%; padding-top: 100%; background: transparent; border-radius: 50%; left: 50%; top: 50%; transform: translate(-50%,-50%)}
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 甘泉县| 旬阳县| 界首市| 高密市| 布拖县| 资源县| 金乡县| 谢通门县| 霍州市| 汉中市| 凌海市| 太和县| 水城县| 特克斯县| 长顺县| 河西区| 通化县| 九江县| 广汉市| 腾冲县| 红河县| 寿光市| 东宁县| 阿拉善盟| 东港市| 绵阳市| 东丰县| 乐至县| 哈尔滨市| 湟中县| 东莞市| 文安县| 肥乡县| 栾川县| 广安市| 正安县| 海阳市| 吉林市| 堆龙德庆县| 云龙县| 驻马店市|