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