以下是 css3 animation动画制作点击波特效css代码 的示例演示效果:
部分效果截图:
HTML代码(index.html):
<!doctype html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>css3 animation动画制作点击波特效</title>
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="css/zzsc-demo.css">
<link rel="stylesheet" href="css/jquery.rippleria.css">
<style type="text/css">
* {
outline: none!important;
}
.btn {
border-radius: 0;
text-transform: uppercase;
}
.btn-sample {
color: #ffffff;
background-color: #9B4DCA;
border-color: #743997;
}
.btn-sample:hover,
.btn-sample:focus,
.btn-sample:active,
.btn-sample.active,
.open .dropdown-toggle.btn-sample {
color: #ffffff;
background-color: #743997;
border-color: #743997;
}
.btn-sample:active,
.btn-sample.active,
.open .dropdown-toggle.btn-sample {
background-image: none;
}
.btn-sample.disabled,
.btn-sample[disabled],
fieldset[disabled] .btn-sample,
.btn-sample.disabled:hover,
.btn-sample[disabled]:hover,
fieldset[disabled] .btn-sample:hover,
.btn-sample.disabled:focus,
.btn-sample[disabled]:focus,
fieldset[disabled] .btn-sample:focus,
.btn-sample.disabled:active,
.btn-sample[disabled]:active,
fieldset[disabled] .btn-sample:active,
.btn-sample.disabled.active,
.btn-sample[disabled].active,
fieldset[disabled] .btn-sample.active {
background-color: #9B4DCA;
border-color: #743997;
}
.btn-sample .badge {
color: #9B4DCA;
background-color: #ffffff;
}
pre {
background-color: white;
border-radius: 0;
}
#rippleria img {
width: 100%;
height: auto;
}
</style>
</head>
<body>
<div class="zzsc-container">
<div class="zzsc-content">
<section class="container">
<h3 class="text-center">按钮的点击波效果:</h3>
<div class="col-md-8 col-md-offset-2">
<pre>
<code class="html">
<button data-rippleria class="button">Click Me!</button>
<button data-rippleria class="button button-outline rippleria-dark">And Me!</button></code></pre></div>
</div>
<p class="text-center">
<button data-rippleria class="btn btn-lg btn-sample">点击我查看效果</button>
<button data-rippleria class="btn btn-lg btn-default rippleria-dark">反色效果</button>
</p>
<div class="row">
<div class="col-md-8 col-md-offset-2">
<h3 class="text-center">自定义动画曲线:</h3>
<pre>
<code class="html">
<button data-rippleria
data-rippleria-color="rgba(100,178,53,.35)"
data-rippleria-duration="1000"
data-rippleria-easing="cubic-bezier(0.680, -0.380, 0.385, 1.650)"
class="btn btn-lg btn-default">Custom</button></code></pre></div>
</div>
<p class="text-center">
<button data-rippleria
data-rippleria-color="rgba(100,178,53,.35)"
data-rippleria-duration="1000"
data-rippleria-easing="cubic-bezier(0.680, -0.380, 0.385, 1.650)"
class="btn btn-lg btn-default">自定义动画曲线</button>
</p>
<div class="row">
<div class="col-md-8 col-md-offset-2">
<h3 class="text-center">图片点击波效果:</h3>
<div class="text-center">
<a style="display: inline-block;" id="rippleria" href="#">
<img src="img/girl.jpg" alt="image">
</a>
</div><br>
<pre><code class="html"><div class="text-center">
<a style="display: inline-block;" id="rippleria" href="#">
<img src="http://www.lovethispic.com/uploaded_images/15163-Pretty-Girl.jpg" alt="image">
</a>
</div>
<script>
function randInt(min, max) {
var rand = min + Math.random() * (max - min)
rand = Math.round(rand);
return rand;
}
$('#rippleria').rippleria({
// aniamtion speed
duration: 750,
// custom easing effect
easing: 'linear',
// custom color
color: undefined
});
$('#rippleria').click(function(e) {
e.preventDefault();
$(this).rippleria('changeColor',
'rgba('+randInt(0,255)+','+randInt(0,255)+','+randInt(0,255)+',0.'+randInt(3,5));
});
</script></code></pre>
</div>
</div>
</section>
</div>
</div>
<script src="js/jquery-2.1.1.min.js" type="text/javascript"></script>
<script src="js/jquery.rippleria.js"></script>
<script>
function randInt(min, max) {
var rand = min + Math.random() * (max - min)
rand = Math.round(rand);
return rand;
}
$('#rippleria').rippleria({
// aniamtion speed
duration: 750,
// custom easing effect
easing: 'linear',
// custom color
color: undefined
});
$('#rippleria').click(function(e) {
e.preventDefault();
$(this).rippleria('changeColor',
'rgba('+randInt(0,255)+','+randInt(0,255)+','+randInt(0,255)+',0.'+randInt(3,5));
});
</script>
</body>
</html>
JS代码(jquery.rippleria.min.js):
!function(t,e,i,o){
function n(e,i){
this.$element=t(e),this.options=t.extend({
}
,n.Defaults,this._getOptionsFromElementAttributes(),i),this._prepare(),this._bind()}
n.prototype._bind=function(){
var n,r,a,s,p,c=this.$element,h=this.options;
s="ontouchend"in e||e.DocumentTouch&&i instanceof DocumentTouch,p=1==s?"touchend.rippleria":"click.rippleria",this.$element.bind(p,function(e){
var i=t("<div class='rippleria-ink'></div>");
if(c.append(i),h.color!=o&&i.css("background-color",h.color),i.css("animation","rippleria "+h.duration/1e3+"s "+h.easing),setTimeout(function(){
i.remove()}
,parseFloat(h.duration)),i.height()||i.width()||(n=Math.max(c.outerWidth(),c.outerHeight()),i.css({
height:n,width:n}
)),1==s){
var p=e.originalEvent.touches[0]||e.originalEvent.changedTouches[0];
r=p.pageX-c.offset().left-i.width()/2,a=p.pageY-c.offset().top-i.height()/2}
else r=e.pageX-c.offset().left-i.width()/2,a=e.pageY-c.offset().top-i.height()/2;
i.css({
top:a+"px",left:r+"px"}
)}
)}
,n.prototype._prepare=function(){
var t=this.$element;
"static"==t.css("position")&&t.css("position","relative"),t.css("overflow","hidden"),t.find("img")[0]!=o&&t.on("dragstart",function(t){
t.preventDefault()}
)}
,n.prototype._getOptionsFromElementAttributes=function(){
var e=this;
return attrs={
}
,t.each(n.Defaults,function(t,i){
var o=e.$element.attr("data-rippleria-"+t);
null!=o&&(attrs[t]=o)}
),attrs}
,n.prototype.changeColor=function(t){
this.options.color=t}
,n.prototype.changeEasing=function(t){
this.options.easing=t}
,n.prototype.changeDuration=function(t){
this.options.duration=t}
,n.Defaults={
duration:750,easing:"linear",color:o}
,t.fn.rippleria=function(e){
var i=Array.prototype.slice.call(arguments,1);
return this.each(function(){
var o=t(this),r=o.data("rippleria");
r||(r=new n(this,"object"==typeof e&&e),o.data("rippleria",r)),"string"==typeof e&&"_"!==e.charAt(0)&&r[e].apply(r,i)}
)}
,t(function(){
t("[data-rippleria]").rippleria()}
)}
(window.jQuery,window,document);
CSS代码(normalize.css):
article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block;}
audio,canvas,video{display:inline-block;}
audio:not([controls]){display:none;height:0;}
[hidden]{display:none;}
html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;}
body{margin:0;}
a:focus{outline:thin dotted;}
a:active,a:hover{outline:0;}
h1{font-size:2em;margin:0.67em 0;}
abbr[title]{border-bottom:1px dotted;}
b,strong{font-weight:bold;}
dfn{font-style:italic;}
hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0;}
mark{background:#ff0;color:#000;}
code,kbd,pre,samp{font-family:monospace,serif;font-size:1em;}
pre{white-space:pre-wrap;}
q{quotes:"\201C" "\201D" "\2018" "\2019";}
small{font-size:80%;}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}
sup{top:-0.5em;}
sub{bottom:-0.25em;}
img{border:0;}
svg:not(:root){overflow:hidden;}
figure{margin:0;}
fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em;}
legend{border:0;padding:0;}
button,input,select,textarea{font-family:inherit;font-size:100%;margin:0;}
button,input{line-height:normal;}
button,select{text-transform:none;}
button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;}
button[disabled],html input[disabled]{cursor:default;}
input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;}
input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;}
input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none;}
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}
textarea{overflow:auto;vertical-align:top;}
table{border-collapse:collapse;border-spacing:0;}
CSS代码(zzsc-demo.css):
/*@import url(http://fonts.useso.com/css?family=Raleway:200,500,700,800);*/
@font-face{font-family:'icomoon';src:url('../fonts/icomoon.eot?rretjt');src:url('../fonts/icomoon.eot?#iefixrretjt') format('embedded-opentype'),url('../fonts/icomoon.woff?rretjt') format('woff'),url('../fonts/icomoon.ttf?rretjt') format('truetype'),url('../fonts/icomoon.svg?rretjt#icomoon') format('svg');font-weight:normal;font-style:normal;}
[class^="icon-"],[class*=" icon-"]{font-family:'icomoon';speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;/* Better Font Rendering =========== */
-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
body,html{font-size:100%;padding:0;margin:0;}
/* Reset */
*,*:after,*:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
/* Clearfix hack by Nicolas Gallagher:http://nicolasgallagher.com/micro-clearfix-hack/ */
.clearfix:before,.clearfix:after{content:" ";display:table;}
.clearfix:after{clear:both;}
body{background:#494A5F;color:#D5D6E2;font-weight:500;font-size:1.05em;font-family:"Microsoft YaHei","瀹嬩綋","Segoe UI","Lucida Grande",Helvetica,Arial,sans-serif,FreeSans,Arimo;}
a{color:#2fa0ec;text-decoration:none;outline:none;}
a:hover,a:focus{color:#74777b;}
.zzsc-container{margin:0 auto;overflow:hidden;}
.bgcolor-1{background:#f0efee;}
.bgcolor-2{background:#f9f9f9;}
.bgcolor-3{background:#e8e8e8;}
/*light grey*/
.bgcolor-4{background:#2f3238;color:#fff;}
/*Dark grey*/
.bgcolor-5{background:#df6659;color:#521e18;}
/*pink1*/
.bgcolor-6{background:#2fa8ec;}
/*sky blue*/
.bgcolor-7{background:#d0d6d6;}
/*White tea*/
.bgcolor-8{background:#3d4444;color:#fff;}
/*Dark grey2*/
.bgcolor-9{background:#ef3f52;color:#fff;}
/*pink2*/
.bgcolor-10{background:#64448f;color:#fff;}
/*Violet*/
.bgcolor-11{background:#3755ad;color:#fff;}
/*dark blue*/
.bgcolor-12{background:#3498DB;color:#fff;}
/*light blue*/
.bgcolor-20{background:#494A5F;color:#D5D6E2;}
/* Header */
.zzsc-header{padding:1em 190px 1em;letter-spacing:-1px;text-align:center;background:#66677c;}
.zzsc-header h1{color:#D5D6E2;font-weight:600;font-size:2em;line-height:1;margin-bottom:0;font-family:"Microsoft YaHei","瀹嬩綋","Segoe UI","Lucida Grande",Helvetica,Arial,sans-serif,FreeSans,Arimo;}
.zzsc-header h1 span{font-family:"Microsoft YaHei","瀹嬩綋","Segoe UI","Lucida Grande",Helvetica,Arial,sans-serif,FreeSans,Arimo;display:block;font-size:60%;font-weight:400;padding:0.8em 0 0.5em 0;color:#c3c8cd;}
/*nav*/
.zzsc-demo a{color:#fff;text-decoration:none;}
.zzsc-demo{width:100%;padding-bottom:1.2em;}
.zzsc-demo a{display:inline-block;margin:0.5em;padding:0.6em 1em;border:3px solid #fff;font-weight:700;}
.zzsc-demo a:hover{opacity:0.6;}
.zzsc-demo a.current{background:#1d7db1;color:#fff;}
/* Top Navigation Style */
.zzsc-links{position:relative;display:inline-block;white-space:nowrap;font-size:1.5em;text-align:center;}
.zzsc-links::after{position:absolute;top:0;left:50%;margin-left:-1px;width:2px;height:100%;background:#dbdbdb;content:'';-webkit-transform:rotate3d(0,0,1,22.5deg);transform:rotate3d(0,0,1,22.5deg);}
.zzsc-icon{display:inline-block;margin:0.5em;padding:0em 0;width:1.5em;text-decoration:none;}
.zzsc-icon span{display:none;}
.zzsc-icon:before{margin:0 5px;text-transform:none;font-weight:normal;font-style:normal;font-variant:normal;font-family:'icomoon';line-height:1;speak:none;-webkit-font-smoothing:antialiased;}
/* footer */
.zzsc-footer{width:100%;padding-top:10px;}
.zzsc-small{font-size:0.8em;}
.center{text-align:center;}
/****/
.related{color:#fff;background:#494A5F;text-align:center;font-size:1.25em;padding:0.5em 0;overflow:hidden;}
.related > a{vertical-align:top;width:calc(100% - 20px);max-width:340px;display:inline-block;text-align:center;margin:20px 10px;padding:25px;font-family:"Microsoft YaHei","瀹嬩綋","Segoe UI","Lucida Grande",Helvetica,Arial,sans-serif,FreeSans,Arimo;}
.related a{display:inline-block;text-align:left;margin:20px auto;padding:10px 20px;opacity:0.8;-webkit-transition:opacity 0.3s;transition:opacity 0.3s;-webkit-backface-visibility:hidden;}
.related a:hover,.related a:active{opacity:1;}
.related a img{max-width:100%;opacity:0.8;border-radius:4px;}
.related a:hover img,.related a:active img{opacity:1;}
.related h3{font-family:"Microsoft YaHei",sans-serif;}
.related a h3{font-weight:300;margin-top:0.15em;color:#fff;}
/* icomoon */
.icon-zzsc-home-outline:before{content:"\e5000";}
.icon-zzsc-arrow-forward-outline:before{content:"\e5001";}
@media screen and (max-width:50em){.zzsc-header{padding:3em 10% 4em;}
.zzsc-header h1{font-size:2em;}
}
@media screen and (max-width:40em){.zzsc-header h1{font-size:1.5em;}
}
@media screen and (max-width:30em){.zzsc-header h1{font-size:1.2em;}
}