js树叶飘落

这个博客展示了如何使用HTML、CSS和JavaScript创建一个动态的落叶飘动效果。通过生成随机大小和位置的树叶图片,并结合数学函数实现它们在页面上的运动轨迹,营造出秋天落叶飘落的视觉体验。博客中还包含了关键代码片段,解释了如何实现元素的运动和重用,以及如何调整元素的位置和透明度来增强效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.效果图
树叶飘落
2.代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>js树叶飘落</title>
	</head>
	<style type="text/css">
		body {
			overflow: hidden;
			background-image: url(img/autumn.jpg);
			background-size: cover;
		}
	</style>
	<body>
		
		<script type="text/javascript">
			//pre.getRandom
			function getRandom(x, y) {
				return Math.random() * (y - x) + x;
			}
			// 1,写一个函数,在可视区域内,随机大小,随机位置,产生n个雪花
			function createSnows(n) {
				for (var i = 0; i < n; i++) {
					var img = document.createElement('img');
					img.src = 'shuye.png';
					//随机
					//1, size 30-60
					//定宽不定高,定高不定宽
					var size = getRandom(20, 40);
					img.style.width = size + 'px';
					// 2,Position
					img.style.position = 'absolute';
					//需要记录每个元素的初始left值
					var left = getRandom(0, window.innerWidth);
					leftArr[i] = left;
					img.style.left = left + 'px';
					img.style.top = getRandom(0, window.innerHeight) + 'px';
					
					// 神仙气质
					img.style.opacity = getRandom(0.4, 1);
					weightArr[i] = getRandom(0,6.28);
					document.body.appendChild(img);

				}
			}


			// 2让雪花运动
			// 运动函数让所有雪花运动
			function snowRun() {
				// 1.获取所有元素
				// document.getElementsByClassName()
				// document.getElementsByTagName()
				var imgs = document.getElementsByTagName('img');
				// 2,遍历元素,让每个元素运动
				setInterval(function() {
					for (var i = 0; i < imgs.length; i++) {
						//每一个元素
						var img = imgs[i];
						var top = parseInt(getComputedStyle(img).top);
						// var left = leftArr[i];
						
						top++;
						img.style.top = top + 'px';
						var left = leftArr[i] + Math .sin(top*0.01 - weightArr[i])*100;
						img.style.left = left + 'px';


						//废物利用,到地下的元素在放到上面
						if (top >= window.innerHeight) {
							img.style.top =-parseInt(getComputedStyle(img).height)+ 1 + 'px';
							//左右位置重新生成
							var left = getRandom(0,window.innerWidth);
							leftArr[i] = left;
							img.style.left = left + 'px';
						}

					}
				},1);
			}
			var leftArr = [];
			//偏移量数组 左加右减
			var weightArr = [];
			createSnows(100);
			snowRun();
		</script>
	</body>
</html>

记录每一个前端小案例!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值