前端做一個簡單的隨機氣泡(隨機大小,隨機顏色,隨機方向,隨機速度,透明度改變)的靜態網頁

話不多說直接代碼:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style>
			* {
				margin: 0;
				padding: 0;
			}
			body {
				overflow: hidden;
				/*溢出隱藏*/
				/*解決塌陷*/
				/*清除浮動*/
			}
			div{
				position: absolute;
				border-radius: 50%;
			}
		</style>
	</head>
	<body>
		<!--生成100個小圓,大小隨機,位置隨機,顏色隨機,透明度隨機-->
		
		<!--讓圓閃爍起來-->
	</body>
	<script>
		for (var i=0; i<40; i++) {
			var d = document.createElement("div");
			var cm = rand(10,150);
			d.style.width = cm + 'px';
			d.style.height = cm + 'px';
			
			d.style.left = rand(0,window.innerWidth-150) + 'px';
			d.style.top = rand(0,window.innerHeight-150) + 'px';
			
			var r = rand(0,255);
			var g = rand(0,255);
			var b = rand(0,255);
			var color = `rgb(${r},${g},${b})`;
			d.style.backgroundColor = color;
			
			var op = Math.random();
			d.style.opacity = op;
			
//			手動爲div創造一個屬性speed
			d.speedOpacity = 0.01;
			if (0.5 - Math.random() > 0) {
				d.speedOpacity = -0.01;
			}
			d.speedX = rand(2,4);
			if (0.5 - Math.random() > 0) {
				d.speedX *= -1;
			}
			d.speedY = rand(2,4);
			if (0.5 - Math.random() > 0) {
				d.speedY *= -1;
			}
			
			document.body.appendChild(d);
		}
		
		function rand(min,max) {
			return Math.round(Math.random() * (max-min) + min);
		}
		
		function changeOpacityAndPosition() {
			var ds = document.getElementsByTagName("div");
			for (var i=0; i<ds.length; i++) {
				var d = ds[i];
				
				var op = d.style.opacity;
				op = parseFloat(op);
				op += d.speedOpacity;
				if (op>=1 || op <= 0) {
					d.speedOpacity *= -1;
				}
				d.style.opacity = op;
				
				var x = d.offsetLeft + d.speedX;
				var y = d.offsetTop + d.speedY;
				if (x < 0) {
					x = 0;
					d.speedX *= -1;
				} else if (x > window.innerWidth-d.offsetWidth) {
					x = window.innerWidth-d.offsetWidth;
					d.speedX *= -1;
				}
				
				if (y < 0) {
					y = 0;
					d.speedY *= -1;
				} else if (y > window.innerHeight-d.offsetHeight) {
					y = window.innerHeight-d.offsetHeight;
					d.speedY *= -1;
				}
				
				d.style.left = x + 'px';
				d.style.top = y + 'px';
			}
		}
		setInterval(function(){
			changeOpacityAndPosition()
		},30);
	</script>
</html>
 
<!--relative:不會影響元素本身的特性,定位參考是原來的位置
absolute: 脫離文檔流,找最近的使用了定位的父級來定位,如果沒有找body
fixed: 脫離文檔流,找窗口定位-->

可以通過改變i的值來改變氣泡個數。目前定義的是40

個人覺得挺好看的,電腦閒置的時候可以把整個網頁打開,然後F11全屏,作爲桌面背景。

還有,由於是網頁所以不能直接做成桌面背景,有人說可以截圖,截成視頻,拜託這些完全是隨機的,弄成視頻就不是隨機的了好吧-_-!。當然如果你有什麼辦法把網頁做成桌面背景,歡迎給我留言。

還有本次代碼是本校實訓時的成果,並不是完全靠個人做出來的。如有雷同,不勝惶恐!


作者:Lee_1310
來源:CSDN
原文:https://blog.csdn.net/Lee_1310/article/details/89048898
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章