svg+js实现立体雪花下雪飘动动画效果代码

代码语言:html

所属分类:动画

代码描述:svg+js实现立体雪花下雪飘动动画效果代码

代码标签: svg js 立体 雪花 下雪 飘动 动画

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

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

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

  
  
<style>
body {
	margin: 0;
	background: linear-gradient(darkblue, #111122);
	overflow: hidden;
	height: 100vh;
}
path:hover {
	
}
</style>

  
  
</head>

<body translate="no">
  
  
      <script>
function snowfetti(el = document.body, opt_properties) {
	if (!el) {
		console.error("Must have element to populate the confetti!");
		return;
	}
	const defaultProperties = {
		addBlur: true,
		angle: 0,
		beginStart: false,
		drop: 400,
		fadeout: true,
		fixedSize: false,
		flakes: 100,
		scale: 1,
		speed: 5000,
		spread: 400,
		spin: true,
		zSpin: true
	};
	const c = {...defaultProperties, ...opt_properties};
	const randInt = (min, max) => {
		return Math.floor(Math.random() * (max - min + 1)) + min;
	};
	const baseEncode = (vall = document.querySelector("#usrInput").value) => {
	let usrVal = vall.replace(/\s\s+/g, ` `);
	let btoa = window.btoa(usrVal);
	let res = encodeURI(vall);
	if (res.indexOf("xmlns=") == -1) res = res.replace(`%3Csvg`, `%3Csvg xmlns=%22http://www.w3.org/2000/svg%22`);
	res = res.replaceAll(`#`, `%23`).replaceAll(`%22`, `'`).replaceAll(`%0A`, ``).replaceAll(`%09`, ``).replaceAll(`%20`, ` `).replace(/\s\s+/g, ` `);
	let baseEncodedSVG = `data:image/svg+xml,${res}`;
	let bgIm = `background-image: url("${baseEncodedSVG}");`;
	return [`data:image/svg+xml;base64,${btoa}`, baseEncodedSVG];
}
	const hh = c.drop;
	const ww = c.spread;
	const randomBlur = () => {
		if (c.addBlur) return randInt(1, 2);
		else return 1;
	};
	const overlayId = `conf${randInt(0, 1000)}etti${randInt(0, 1000)}ver${randInt(0, 1000)}lay`;
	let animatedConfetti = ``;
	// make sure number of flakes is a number
	if (!c.flakes || Number.isNaN(c.flakes * 1)) {
		c.flakes = 100;
	}
	for (let i = 0; i < c.flakes; i++) {
		const conId = `con${randInt(0, 1000)}fet${randInt(0, 1000)}ti${randInt(0, 1000)}`;
		const confettiDur = `${randInt(c.speed / 2, c.speed)}`;
		let confettiSpin = ``;
		let confettiType = ``;
		if (c.spin) {
			confettiSpin = `<animateTransform attributeName="transform" type="rotate" values="0 0 0; ${(Math.random() < 0.5 ? -1 : 1) * 360} 0 0" dur="${randInt(c..........完整代码请登录后点击上方下载按钮下载查看

网友评论0