<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
body{
margin: 100px;
}
#canvas{
box-shadow: 0 0 10px #000;
}
</style>
</head>
<body>
<canvas id="canvas">当前的浏览器不支持该版本</canvas>
</body>
<!-- <script src="./js/underscore.js"></script> -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
<script>
//1.获取当前的画布
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d')//获取当前画布的上下文,基于2d的
canvas.width = 800;
canvas.height = 400;
canvas.style.backgroundColor = '#000'
//2.设置小球这个类
class Ball{
constructor(x,y,color){
this.x = x;
this.y = y;
this.color = color;
this.r = 20;
}
render(){
ctx.save()//首先开始上下文,并做一个保存
ctx.beginPath()//绘制开始的路径
ctx.arc(this.x,this.y,this.r,0,Math.PI*2)//绘制一个小球,参数为(位置,位置,半径,起始的角度,结束的角度)
ctx.fillStyle=this.color;
ctx.fill();//绘制小球
ctx.restore()//和ctx.save()一样,是通用的格式
}
}
//3.会移动的小球类
class MoveBall extends Ball{ //在这里可以用extends继承了这个Ball
constructor(x,y,color){
super(x,y,color)//可以通过super来调用父类的参数
//量的变化
this.dX = _.random(-5,5);
this.dY = _.random(-5,5);
this.dR = _.random(1,3);
}
upDate(){
this.x += this.dX;
this.y += this.dY;
this.r -= this.dR;
if(this.r < 0){
this.r = 0;
}
}
}
//4.实例化小球
let = ballArr = [];
//5.监听鼠标的移动
canvas.addEventListener('mousemove',function(e){
ballArr.push ( new MoveBall(e.offsetX,e.offsetY,colorArr))
})
console.log(ballArr)
//6.开启定时器
setInterval(function(){
//清除
ctx.clearRect(0,0,canvas.width,canvas.height)
//绘制
let = colorArr ='#'+(Math.random()*0xffffff<<0).toString(16);//随机颜色
for(let i = 0;i < ballArr.length;i++){
ballArr[i].render();
ballArr[i].upDate();
}
},30)
</script>
</html>
Wallpaper Engine 应该是可以的,不过要在steam上买,这个软件挺强大的,还能用视频和exe程序当桌面背景。