HTML+JS实现星空背景

HTML+JS 实现星空背景

查看效果:http://lsy.deld.vip/article/show/24.html

第一步 html:

创建画布 canvas 并设置 id 为 starfield(设置 id 是为了后面写 js 方便获取到画布标签)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Html+js 实现星空背景</title>
</head>
<body>
	<!--创建画布-->
    <canvas id="starfield"></canvas>
</body>
</html>

第二步 css:

为画布标签设置定位,坐标为(0,0);排版 z-index: -1(保证画布处于最底层作为背景)

canvas{
	position:fixed;/*设置定位*/
	top:0;
	left:0;
	z-index:-1;/*使画布基于最低层*/
	background:#0e1729;/*画布背景色*/
}

第三步 js:

var canvas;
var stars_count;
var stars;
ini();
makeStars();
var interval=setInterval(function(){drawStars();},50);//定时刷新星星数据

function ini(){//初始化
    canvas = document.getElementById("starfield");
    canvas.width = window.innerWidth;
    canvas.height = window.innerHeight;
    context = canvas.getContext("2d");
    stars = Array();//数组存放随机生成的星星数据(x,y,大小,颜色,速度)
    stars_count = 300;//星星数量
    clearInterval(interval);
}

function makeStars(){//随机生成星星数据
    for(var i=0;i<stars_count;i++)
    {
        let x=Math.random() * canvas.offsetWidth;
        let y = Math.random() * canvas.offsetHeight;
        let radius = Math.random()*0.8;
        let color="rgba("+Math.random()*255+","+Math.random()*255+","+Math.random()*255+",0.8)";
        let speed=Math.random()*0.5;
        let arr={'x':x,'y':y,'radius':radius,'color':color,'speed':speed};//(x,y,大小,颜色,速度)
        stars.push(arr);//随机生成的星星数据存在这里
    }
}

function drawStars(){//把星星画到画布上
    context.fillStyle = "#0e1729";
    context.fillRect(0,0,canvas.width,canvas.height);
    for (var i = 0; i < stars.length; i++) {
        var x = stars[i]['x'] - stars[i]['speed'];
        if(x<-2*stars[i]['radius']) x=canvas.width;
        stars[i]['x']=x;
        var y = stars[i]['y'];
        var radius = stars[i]['radius'];
        context.beginPath();
        context.arc(x, y, radius*2, 0, 2*Math.PI);
        context.fillStyle = "rgba("+Math.random()*255+","+Math.random()*255+","+Math.random()*255+",0.8)";
        context.fill();
    }
}

window.onresize = function(){//窗口大小发生变化时重新随机生成星星数据
    ini();
    makeStars();
    interval=setInterval(function(){drawStars();},50);
}
  • 12
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: HTML 中可以使用 CSS 样式来设置文字背景,以下是一些好看的文字背景效果: 1. 背景色渐变 ```css background: linear-gradient(to right, #f6d365, #fda085); -webkit-background-clip: text; -webkit-text-fill-color: transparent; ``` 2. 线性渐变背景 ```css background: linear-gradient(to right, #a1c4fd, #c2e9fb); display: inline-block; background-clip: text; -webkit-background-clip: text; color: transparent; ``` 3. 图片背景 ```css background-image: url('your-image.jpg'); background-attachment: fixed; background-position: center; background-repeat: no-repeat; background-size: cover; ``` 4. 文字阴影 ```css background-color: #333; color: #fff; text-shadow: 0px 1px 3px rgba(0, 0, 0, 0.5); ``` 以上是一些好看的文字背景效果,你可以根据你的需求选择合适的样式来美化你的网页。 ### 回答2: HTML中可以使用CSS来设置文字的背景,让文字更加好看和突出。下面是几种可以用来实现好看文字背景的方法。 1. 使用背景图片:可以通过CSS的background-image属性来设置文字背景图片,可以选择花纹、渐变、图案等背景图片,使文字在这些背景上更加突出和美观。 2. 使用文字阴影:可以通过CSS的text-shadow属性来设置文字的阴影效果,可以选择颜色、模糊度和偏移量等参数,使文字在阴影的衬托下更加立体和生动。 3. 使用背景色和边框:可以通过CSS的background-color属性来设置文字的背景色,可以选择喜欢的色彩,使文字在鲜艳的背景中更加显眼。同时,可以通过CSS的border属性来设置文字的边框,可以选择边框的粗细和颜色,使文字更加有层次感。 4. 使用文字填充:可以通过CSS的background-clip属性来设置文字的填充效果,可以选择渐变、图案等填充效果,使文字充满这些填充效果,从而使文字更具艺术感。 5. 使用文字渐变:可以通过CSS的background属性和linear-gradient函数来设置文字的渐变效果,可以选择起始颜色和终止颜色,使文字从一种颜色渐变到另一种颜色,从而增强文字的视觉效果。 总之,在HTML中可以通过使用CSS来设置文字背景,可以选择不同的方法来实现好看的文字背景效果,从而使文字更加突出、美观和吸引人。 ### 回答3: 要在HTML中创建一个好看的文字背景,可以考虑以下几种方法: 1. 使用CSS样式表:在HTML中使用内联或外部的CSS样式表来设置文字背景。可以使用background-color属性来设置文字背景的颜色,例如:background-color: lightblue;。还可以使用background-image属性来设置文字背景的图片,例如:background-image: url("bg.jpg");。 2. 使用文字背景特效:可以使用CSS属性如text-fill-color,利用渐变特效来设置文字的背景颜色,创造出炫酷的效果。例如:text-fill-color: linear-gradient(to right, blue, purple);。 3. 使用图片或图案作为文字背景:可以使用CSS属性如background-image和background-repeat来设置图片或图案作为文字的背景。例如:background-image: url("pattern.jpg"); background-repeat: repeat;。 4. 使用透明度效果:可以使用CSS属性如opacity来设置文字的透明度,创造出半透明或渐变的文字背景效果。例如:opacity: 0.7;。 5. 使用特殊字体或字体效果:可以使用CSS属性如text-shadow来添加文字投影效果,使文字背景更加突出。例如:text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);。 无论选择哪种方法,都需要根据实际需求和设计风格来进行调整和优化,以确保文字背景的美观性和可读性。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值