webgl+canvas实现鼠标跟随电焊电弧光标动画效果代码

代码语言:html

所属分类:动画

代码描述:webgl+canvas实现鼠标跟随电焊电弧光标动画效果代码

代码标签: webgl canvas 鼠标 跟随 电焊 电弧 光标 动画

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

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

<head>
  <meta charset="UTF-8">
  


  
  
  
<style>
html,
body {
	height: 100%;
	margin: 0;
	background: #0b0f14;
}
#wrap {
	position: relative;
	width: 100%;
	height: 100%;
}
canvas {
	width: 100%;
	height: 100%;
	display: block;
	cursor: crosshair;
}
.hud {
	position: absolute;
	top: 10px;
	left: 10px;
	font: 12px/1.3 system-ui, Segoe UI, Roboto, Arial;
	color: #cfe8ff;
	background: rgba(0, 0, 0, 0.35);
	padding: 8px 10px;
	border-radius: 8px;
}
code {
	color: #9cf;
}
</style>

  
</head>

<body translate="no">
  <div id="wrap">
	<canvas id="fx"></canvas>
	<div class="hud">
		API: <code>const weld = new ArcWeldEffect(canvas[, options])</code><br />
		Méthodes: <code>start()</code> · <code>stop()</code> · <code>destroy()</code> · <code>setOptions()</code>
	</div>
</div>

<script>
	document.addEventListener('DOMContentLoaded', () => {
		const canvas = document.getElementById("fx");
		const weld = new ArcWeldEffect(canvas, {
			baseIntensity: 0.08,
			speedGain: 1.0,
			clickBoost: 1.6,
			glowRadius: 90,
			sparkCount: 500,
			color: [0.81, 0.93, 1.0],
			noiseSeed: 4025
		});
		weld.start();
		// quick smoke tests
		window.addEventListener("blur", () => weld.setOptions({
			baseIntensity: 0.02
		}));
		window.addEventListener("focus", () =>
			weld.setOptions({
				baseIntensity: 0.08
			})
		);
		window.addEventListener("resize", () => {
			/* handled internally by ResizeObserver */
		});
	})
</script>
  
      <script>
class ArcWeldEffect {
	constructor(target, options = {}) {
		// Public options (with defaults)
		this.opts = {
			baseIntensity: 0.08,
			speedGain: 0.9,
			clickBoost: 1.2,
			glowRadius: 80,
			sparkCount: 400,
			color: [0.85, 0.95, 1.0], // electric white-blue
			noiseSeed:.........完整代码请登录后点击上方下载按钮下载查看

网友评论0