摘要:原生實現簡單的按鈕效果如圖準備食材部分首頁我的更多典型的菜單布局,里面的表示的是觸摸彈出的小圓圈。
原生js實現簡單的Ripple按鈕 效果如圖 準備食材(html部分)
典型的菜單li布局,里面的span.circle表示的是觸摸彈出的小圓圈。
準備輔料 (css部分)#nav { display: flex; } #nav li { position: relative; overflow: hidden; flex: 1; } li a { display: flex; flex-direction: column; justify-content: center; align-items: center; } .circle{ position: absolute; background: rgba(86,187,247,.1); width: 1px; height: 1px; top:50%; left: 50%; border-radius: 50%; } .circle.act{ animation: navCircle .4s; } @keyframes navCircle { from {transform: scale(0);border-radius: 50%;} to {transform:scale(200);border-radius: 50%;} }
我的思路是這樣的,給li相對定位,給小圓圈絕對定位,再給小圓圈添加動畫navCircle,采用css3的縮放使其變大,至于為什么是200倍和.4s呢,經過測試這樣更人性化,其余的倍數你們也可以試試。
大火烹飪 (js部分)var li = document.getElementById("nav").querySelectorAll("li"); var circle = document.getElementById("nav").querySelectorAll(".circle"); for(var i=0,len = li.length;i{ li[i].addEventListener("click",(e)=>{ circle[i].setAttribute("class","circle act"); circle[i].setAttribute("style","top:"+e.layerY+"px;left:"+e.layerX+"px"); }); li[i].addEventListener("touchend",()=>{ circle[i].setAttribute("class","circle"); }) })(i) }
代碼很簡單,相信大家也猜到了,點擊li的時候給小圓圈添加class "act",并且設置小圓圈的起始位置,監聽觸摸結束的時候,取消class "act",有人肯定要問了,為什么你不用touchstart呢,唉,因為沒有layerY這個屬性,找了半天都沒找到啊。
友情提示!touchend僅支持移動端
結束做這個部分是因為我們安卓app里面有這個功能,所以我就想看看h5怎么做,開始的思路是讓寬度和高度隨著時間變大,但是實現了之后感覺性能不好,所以才想到了直接增加倍數唄,于是這個功能變完美誕生了,開始享用這份套餐把 !
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/50607.html
摘要:原生實現簡單的按鈕效果如圖準備食材部分首頁我的更多典型的菜單布局,里面的表示的是觸摸彈出的小圓圈。 原生js實現簡單的Ripple按鈕 效果如圖 showImg(https://segmentfault.com/img/remote/1460000008807822?w=600&h=82); 準備食材(html部分) ...
摘要:原生實現簡單的按鈕效果如圖準備食材部分首頁我的更多典型的菜單布局,里面的表示的是觸摸彈出的小圓圈。 原生js實現簡單的Ripple按鈕 效果如圖 showImg(https://segmentfault.com/img/remote/1460000008807822?w=600&h=82); 準備食材(html部分) ...
摘要:但是往往要引入一大堆和,其實在已有的項目中,可能只是想加一個這樣的按鈕,來增強用戶體驗,這些庫就顯得有些過于龐大了,同時由于是實現,很多時候還要注意加載問題。 前言 大家平時應該經常見到這種特效,很炫酷不是嗎 showImg(https://segmentfault.com/img/remote/1460000016740061?w=318&h=190); 這是谷歌Material D...
摘要:但是往往要引入一大堆和,其實在已有的項目中,可能只是想加一個這樣的按鈕,來增強用戶體驗,這些庫就顯得有些過于龐大了,同時由于是實現,很多時候還要注意加載問題。 前言 大家平時應該經常見到這種特效,很炫酷不是嗎 showImg(https://segmentfault.com/img/remote/1460000016740061?w=318&h=190); 這是谷歌Material D...
閱讀 2984·2021-09-10 10:50
閱讀 3188·2019-08-30 14:19
閱讀 3515·2019-08-29 17:31
閱讀 3241·2019-08-29 16:43
閱讀 2191·2019-08-29 14:05
閱讀 2088·2019-08-29 13:17
閱讀 2041·2019-08-26 13:25
閱讀 1756·2019-08-26 12:20