源码
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<defs><filter id="gooey">
<feGaussianBlur in="SourceGraphic" stdDeviation="5" result="blur"></feGaussianBlur><feColorMatrix in="blur" type="matrix" values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 19 -9" result="highContrastGraphic"></feColorMatrix><feComposite in="SourceGraphic" in2="highContrastGraphic" operator="atop"></feComposite>
</filter></defs>
</svg>
<button id="gooey-button">
https://www.fly63.com
<span class="bubbles">
<span class="bubble"></span>
<span class="bubble"></span>
<span class="bubble"></span>
<span class="bubble"></span>
<span class="bubble"></span>
<span class="bubble"></span>
<span class="bubble"></span>
<span class="bubble"></span>
<span class="bubble"></span>
<span class="bubble"></span>
</span>
</button>
<style type="text/css">
body,html {
align-items: center;
background-color: #0c1016;
display: flex;
font-family: "Roboto";
font-size: 10px;
height: 100%;
justify-content: center;
margin: 0;
padding: 0;
width: 100%
}
* {
box-sizing: border-box
}
svg {
position: absolute;
top: -4000px;
left: -4000px
}
#gooey-button {
padding: 1rem;
font-size: 2rem;
border: 0;
color: #0c1016;
filter: url("#gooey");
position: relative;
background-color: #00FF80
}
#gooey-button:focus {
outline: 0
}
#gooey-button .bubbles {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0
}
#gooey-button .bubbles .bubble {
background-color: #00FF80;
border-radius: 100%;
position: absolute;
top: 0;
left: 0;
display: block;
z-index: -1
}
#gooey-button .bubbles .bubble:nth-child(1) {
left: 13px;
width: 25px;
height: 25px;
animation: move-1 3.02s infinite;
animation-delay: .2s
}
#gooey-button .bubbles .bubble:nth-child(2) {
left: 18px;
width: 25px;
height: 25px;
animation: move-2 3.04s infinite;
animation-delay: .4s
}
#gooey-button .bubbles .bubble:nth-child(3) {
left: 71px;
width: 25px;
height: 25px;
animation: move-3 3.06s infinite;
animation-delay: .6s
}
#gooey-button .bubbles .bubble:nth-child(4) {
left: 35px;
width: 25px;
height: 25px;
animation: move-4 3.08s infinite;
animation-delay: .8s
}
#gooey-button .bubbles .bubble:nth-child(5) {
left: 34px;
width: 25px;
height: 25px;
animation: move-5 3.1s infinite;
animation-delay: 1s
}
#gooey-button .bubbles .bubble:nth-child(6) {
left: 36px;
width: 25px;
height: 25px;
animation: move-6 3.12s infinite;
animation-delay: 1.2s
}
#gooey-button .bubbles .bubble:nth-child(7) {
left: 91px;
width: 25px;
height: 25px;
animation: move-7 3.14s infinite;
animation-delay: 1.4s
}
#gooey-button .bubbles .bubble:nth-child(8) {
left: 62px;
width: 25px;
height: 25px;
animation: move-8 3.16s infinite;
animation-delay: 1.6s
}
#gooey-button .bubbles .bubble:nth-child(9) {
left: 57px;
width: 25px;
height: 25px;
animation: move-9 3.18s infinite;
animation-delay: 1.8s
}
#gooey-button .bubbles .bubble:nth-child(10) {
left: 49px;
width: 25px;
height: 25px;
animation: move-10 3.2s infinite;
animation-delay: 2s
}
@keyframes move-1 {
0% {
transform: translate(0,0)
}
99% {
transform: translate(0,-109px)
}
100% {
transform: translate(0,0);
opacity: 0
}
}
@keyframes move-2 {
0% {
transform: translate(0,0)
}
99% {
transform: translate(0,-76px)
}
100% {
transform: translate(0,0);
opacity: 0
}
}
@keyframes move-3 {
0% {
transform: translate(0,0)
}
99% {
transform: translate(0,-125px)
}
100% {
transform: translate(0,0);
opacity: 0
}
}
@keyframes move-4 {
0% {
transform: translate(0,0)
}
99% {
transform: translate(0,-66px)
}
100% {
transform: translate(0,0);
opacity: 0
}
}
@keyframes move-5 {
0% {
transform: translate(0,0)
}
99% {
transform: translate(0,-74px)
}
100% {
transform: translate(0,0);
opacity: 0
}
}
@keyframes move-6 {
0% {
transform: translate(0,0)
}
99% {
transform: translate(0,-122px)
}
100% {
transform: translate(0,0);
opacity: 0
}
}
@keyframes move-7 {
0% {
transform: translate(0,0)
}
99% {
transform: translate(0,-80px)
}
100% {
transform: translate(0,0);
opacity: 0
}
}
@keyframes move-8 {
0% {
transform: translate(0,0)
}
99% {
transform: translate(0,-89px)
}
100% {
transform: translate(0,0);
opacity: 0
}
}
@keyframes move-9 {
0% {
transform: translate(0,0)
}
99% {
transform: translate(0,-72px)
}
100% {
transform: translate(0,0);
opacity: 0
}
}
@keyframes move-10 {
0% {
transform: translate(0,0)
}
99% {
transform: translate(0,-120px)
}
100% {
transform: translate(0,0);
opacity: 0
}
}
</style>