我的博客:凌霄的博客css
做爲一個 md 黨,我很喜歡 md 的漣漪效果,百度找到的源碼都太複雜,因而動手本身寫了一個。git
點擊時定位鼠標的位置,以鼠標爲漣漪中心,讓漣漪逐漸擴大,超出的地方隱藏web
漣漪的半徑默認爲元素的寬度或高度(最大的那一方)
漣漪的顏色,速度能夠自行修改app
$(function(){ $(".ripple").click(function(e){ if ($(this).find("#wave").length){ $(this).find("#wave").remove(); } $(this).append("<div id='wave'></div>"); var wave=$(this).find("#wave"); wave.css({ "display": " block", //漣漪的顏色 "background": " rgba(0, 0, 0, 0.3)", "border-radius": " 50%", "position": " absolute", "-webkit-transform": " scale(0)", "transform": " scale(0)", "opacity": " 1", //漣漪的速度 "transition": " all 0.7s", "-webkit-transition": " all 0.7s", "-moz-transition": " all 0.7s", "-o-transition": " all 0.7s", "z-index": " 1", "overflow": " hidden", "pointer-events": " none" }); // 獲取ripple的寬度和高度 waveWidth = parseInt($(this).outerWidth()); waveHeight = parseInt($(this).outerHeight()); if(waveWidth < waveHeight){ var R= waveHeight; }else { var R= waveWidth; } wave.css({ "width":(R*2)+"px", "height":(R*2)+"px", "top": (e.pageY -$(this).offset().top - R)+'px', "left": ( e.pageX -$(this).offset().left -R)+'px', "transform":"scale(1)", "-webkit-transform":"scale(1)", "opacity":"0" }); }); });
給你的元素添加 .ripple
類this
效果是用 jQuery
實現的,不過據說你們都拋棄 jQuery
了,QAQspa
項目地址.net
歡迎評論,若有錯誤請指出,以避免誤導更多人code