poly-decomp+matter实现字母拖拽切割重力落下交互动画代码
代码语言:html
所属分类:拖放
代码描述:poly-decomp+matter实现字母拖拽切割重力落下交互动画代码
代码标签: poly-decomp matter 字母 拖拽 切割 重力 落下 交互 动画 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
body {
background: #efefef;
overflow: hidden;
width: 100vw;
height: 100vh;
}
svg {
display: block;
width: 100vw;
height: 100vh; touch-action: none;
}
#hint {
position: fixed;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
font-family: sans-serif;
font-size: 18px;
letter-spacing: 0.08em;
color: #999;
opacity: 0;
pointer-events: none;
transition: opacity 0.6s ease;
}
#flash {
position: fixed;
inset: 0;
background: radial-gradient(
circle at 50%,
rgba(255, 255, 255, 1),
rgba(255, 255, 255, 0.6),
rgba(255, 255, 255, 0)
);
opacity: 0;
pointer-events: none;
}
.cut-line {
animation: dash-flow 0.3s linear infinite;
}
@keyframes dash-flow {
to {
stroke-dashoffset: -10;
}
}
</style>
</head>
<body translate="no">
<div id="hint">click and drag the letter</div>
<div id="flash"></div>
<svg id="canvas" viewBox="0 0 1000 1000"></svg>
<script type="module">
import opentype from "https://esm.sh/opentype.js";
import polygonClipping from "https://esm.sh/polygon-clipping";
import Matter from "https://esm.sh/matter-js";
import decomp from "https://esm.sh/poly-decomp";
Matter.Common.setDecomp(decomp);
const { Engine, Bodies, Body, Composite, Query, Constraint, Vertices } = Matter;
// Config
const CONFIG = {
letters: "BFWWIKI",
letterStart: { x: 0.5, y: 0.3 },
fontSize: window.innerWidth < 700 ? 100 : 200,
far:.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0