canvas实现11种炫酷动画效果代码

代码语言:html

所属分类:动画

代码描述:canvas实现11种炫酷动画效果代码

代码标签: canvas 炫酷 动画

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >

<head>
 
<meta charset="UTF-8">
 
 
 
 
<style>
@charset "UTF-8";

* {
       
box-sizing: border-box;
       
margin: 0;
       
padding: 0;
}

body
,
html
{
       
text-size-adjust: 100%;
       
-webkit-text-size-adjust: 100%;
       
-webkit-tap-highlight-color: transparent;
       
text-rendering: optimizeLegibility;
       
overflow: hidden;
}

body
{
       
display: flex;
       
flex-direction: column;
       
align-items: center;
       
justify-content: flex-start;
       
width: 100%;
       
height: 100%;
       
min-height: 100vh;
       
font: normal normal 400 16px / 150% sans-serif;
       
background: #111;
       
color: #eee;
}

button
{
       
background: rgba(0, 0, 0, 0.5);
       
border: none;
       
display: flex;
       
align-items: center;
       
justify-content: center;
       
cursor: pointer;
       
font-size: 1.25rem;
       
padding: 0.8rem 1rem;
       
border-radius: 7px;
       
color: #fff;
       
z-index: 10;
       
backdrop-filter: blur(5px);
       
-webkit-backdrop-filter: blur(5px);
       
border: 1px solid #777;
       
box-shadow: rgba(0, 0, 0, 0.25) 0px 54px 55px,
                rgba
(0, 0, 0, 0.12) 0px -12px 30px, rgba(0, 0, 0, 0.12) 0px 4px 6px,
                rgba
(0, 0, 0, 0.17) 0px 12px 13px, rgba(0, 0, 0, 0.09) 0px -3px 5px;
       
transition: background 0.3s;
}

button:hover {
       
background: rgba(255, 255, 255, 0.2);
}

#prev,
#next {
       
position: absolute;
       
top: 50%;
       
transform: translateY(-50%);
}

#prev {
       
left: 1rem;
}

#next {
       
right: 1rem;
}

#controls {
       
position: absolute;
       
bottom: 1rem;
       
left: 50%;
       
transform: translateX(-50%);
       
display: flex;
       
gap: 1rem;
       
z-index: 10;
}

#play {
       
padding: 0;
       
width: 55px;
       
height: 55px;
}

/* Gallery & Slides */
#gallery {
       
position: relative;
       
width: 100vw;
       
height: 100vh;
       
overflow: hidden;
}

.slide {
       
position: absolute;
       
top: 0;
       
left: 0;
       
width: 100%;
       
height: 100%;
       
opacity: 0;
       
transform: translateX(100%) scale(1.05);
       
clip-path: circle(0% at 50% 50%);
       
will-change: transform, opacity, clip-path;
       
background: #111;
       
filter: url(#liquidMask) url(#gooey) url(#glow) url(#enhance);
}

@keyframes slideIn {
       
0% {
               
transform: translateX(30%) scale(1.05);
               
opacity: 0;
               
clip-path: circle(0% at 50% 50%);
               
filter: blur(8px) url(#liquidMask) url(#gooey) url(#glow) url(#enhance);
       
}
       
60% {
               
clip-path: circle(150% at 50% 50%);
       
}
       
100% {
               
transform: translateX(0) scale(1);
               
opacity: 1;
               
clip-path: circle(150% at 50% 50%);
               
filter: blur(0) url(#liquidMask) url(#gooey) url(#glow) url(#enhance);
       
}
}

@keyframes slideOut {
       
0% {
               
transform: translateX(0) scale(1);
               
opacity: 1;
               
clip-path: circle(150% at 50% 50%);
               
filter: blur(0) url(#liquidMask) url(#gooey) url(#glow) url(#enhance);
       
}
       
40% {
               
clip-path: circle(150% at 50% 50%);
       
}
       
100% {
               
transform: translateX(-30%) scale(0.95);
               
opacity: 0;
               
clip-path: circle(0% at 50% 50%);
               
filter: blur(8px) url(#liquidMask) url(#gooey) url(#glow) url(#enhance);
       
}
}

.slide.enter {
       
animation: slideIn 0.8s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.slide.exit {
       
animation: slideOut 0.6s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
</style>

 
 
</head>

<body translate="no">
 
<button id="prev">&#8678;</button>
<button id="next">&#8680;</button>

<div id="controls">
       
<button id="play">&#9654;</button>
       
<button id="randomize">🔄 Randomize All</button>
</div>

<div id="gallery">
       
<canvas class="slide" data-sketch="rings"></canvas>
       
<canvas class="slide" data-sketch="mountain"></canvas>
       
<canvas class="slide" data-sketch="lissajous"></canvas>
       
<canvas class="slide" data-sketch="spiral"></canvas>
       
<canvas class="slide" data-sketch="dots"></canvas>
       
<canvas class="slide" data-sketch="waves"></canvas>
       
<canvas class="slide" data-sketch="flow"></canvas>
       
<canvas class="slide" data-sketch="tree"></canvas>
       
<canvas class="slide" data-sketch="grid"></canvas>
       
<canvas class="slide" data-sketch="confetti"></canvas>
        <canvas class="slide" data-sketch="shap.........完整代码请登录后点击上方下载按钮下载查看

网友评论0