0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何通过html+css样式和js的方式实现星星图的效果

电子设计 来源:电子设计 作者:电子设计 2020-12-24 18:13 次阅读

一、前言

在浏览一些图片网站的时候,经常会看到很多的漂亮的星空图,比如,下面的图片。其实这种星星图片的效果,也可以通过html+css样式和js的方式来实现。今天教大家如何实现星星图的效果。

二、项目准备

软件:Dreamweaver

三、实现的目标

每次刷新产生随机的星星个数。显示画布上。

四、项目实现

1. 创建canvas画布<body> <canvas id='canvas'></canvas></body>2. 添加css样式。

给canva 画布加上边框,方便观察。

<style type="text/css"> canvas{ border:2px solid #f00;}</style>3.添加js样式
3.1 设置canvas画布大小 ,定义需要变量。<script type="text/javascript"> var _canvas=document.getElementById("canvas") _canvas.width=500; _canvas.height=500;var r,g ,b,a;</script>3.2 产生随机圆。
for (var j = 0; j < 150; j++) { arc.x=Math.floor(Math.random()*_canvas.width); arc.y=Math.floor(Math.random()*_canvas.height); arc.r=Math.floor(Math.random()*31+10); r=Math.ceil(Math.random()*256); g=Math.ceil(Math.random()*256); b=Math.ceil(Math.random()*256); a=Math.random();
darw();}3.3 定义draw()方法,通过画星星公式,将圆形转换成星星状 for 循环产生随机位置星星。

如何画星星?(公式解析)(图片来源百度)

星星有内切圆和外切圆,每两个点之间的角度是固定的,因此可得到星星的每个点的坐标,画出星星。

随机产生星星for (var i = 0; i < 5; i++) {
_ctx.lineTo(Math.cos((18+72*i)/180*Math.PI)*arc.r+arc.x, -Math.sin((18+72*i)/180*Math.PI)*arc.r+arc.y);
_ctx.lineTo(Math.cos((54+72*i)/180*Math.PI)*arc.r/2+arc.x, -Math.sin((54+72*i)/180*Math.PI)*arc.r/2+arc.y); }3.4 随机产生颜色。

Math函数随机产生0-225的RGB值。

随机颜色 _ctx.fillStyle="rgba(" + r + "," + g + "," + b + "," + a + ")"; _ctx.fill(); _ctx.strokeStyle="rgba(" + r + "," + g + "," + b + "," + a + ")"; _ctx.stroke(); }3.5. 调用draw()方法实现功能。
darw();


审核编辑:符乾江
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • javascript
    +关注

    关注

    0

    文章

    516

    浏览量

    53857
  • Canvas
    +关注

    关注

    0

    文章

    16

    浏览量

    10985
收藏 人收藏

    评论

    相关推荐

    Tailwind CSS v4.0发布首个Beta版本

    Tailwind CSS 是一个为快速开发而精心设计的原子类 CSS 框架,它提供了充满设计感和应用程序至上的能力来创建组件,它在最新的 2.0 版本中加入了暗黑模式,开箱即用。
    的头像 发表于 11-25 10:02 191次阅读
    Tailwind <b class='flag-5'>CSS</b> v4.0发布首个Beta版本

    Taro 鸿蒙技术内幕系列(二):如何让 W3C 标准的 CSS跑在鸿蒙上

    HarmonyOS 采用自研的 ArkUI 框架作为原生 UI 开发方案,这套方案有完善的布局系统和样式控制,但是他的标准与 W3C 的 CSS 标准存在不一致性。这意味着,如果 Taro 直接
    的头像 发表于 10-31 10:54 164次阅读
    Taro 鸿蒙技术内幕系列(二):如何让 W3C 标准的 <b class='flag-5'>CSS</b>跑在鸿蒙上

    研发都应该了解的如何在vite中接入现代化css工程化方案

    好的css工程化方案可以增强我们项目的可维护性、提高样式的复用性、进行自动化处理等,在提高页面加载速度和性能的同时,我们可以有更多的精力进行js逻辑的处理。
    的头像 发表于 10-25 17:25 360次阅读

    JS实现简单的屏幕录像机

    作者:京东保险 张洁 本文将介绍如何用JS实现简单的屏幕录像机。 一、录制准备 创建一个按钮   Start recording   书写JavaScript   var
    的头像 发表于 10-09 15:27 154次阅读

    鸿蒙跨端实践-JS虚拟机架构实现

    类似的框架,我们需要自行实现以确保核心基础能力的完整。 鸿蒙虚拟机的开发经历了从最初 ArkTs2V8 到 JSVM + Roma新架构方案 。在此过程中,我们实现了完整的鸿蒙版的“J2V8”和 基于系统JSVM的JS虚拟机框架
    的头像 发表于 09-30 14:42 2411次阅读
    鸿蒙跨端实践-<b class='flag-5'>JS</b>虚拟机架构<b class='flag-5'>实现</b>

    推荐一个支持js的嵌入式设备开发平台

    可以通过vscode开发js,实时推送js代码到设备里运行,无需编译,支持屏幕,感兴趣的可以看看 https://github.com/duoxianwulian/dxdop 提供很多js
    发表于 09-04 14:04

    双轴测径仪的四种样式

    仪设计了四种外观样式。 45°角布置的开口测径仪 这个样式的双轴测径仪是目前大部分产线所使用的,样式简单大气。用于外径及椭圆度尺寸的检测。 45°角布置的闭口测径仪 该样式的双轴测径仪
    发表于 08-27 17:42

    PGA900能直接在CSS上编程吗?

    您好,PGA900能直接在CSS上编程吗? 可以通过XDS200下载程序到PGA900上面吗?
    发表于 08-08 07:31

    bootstrap框架和vue框架的区别

    响应式移动优先的网页。Bootstrap的核心设计理念是“移动优先”,即优先考虑移动设备的显示效果,然后通过媒体查询等技术实现对不同设备的适配。Bootstrap提供了一套丰富的CSS
    的头像 发表于 07-11 09:55 865次阅读

    芯海应用笔记:CSS34P16P(A)型应用说明文档

    Type-C 和 USB 供电端口控制解决方案。芯片可根据用户需求灵活配置,操作简便, 可快速实现方案功能。*附件:CSS34P16应用说明文档.pdf
    发表于 05-16 14:46

    OpenHarmony实战开发-menu开发指导

    3</option> </menu> </div> html /* xxx.css */ .container
    发表于 04-30 14:41

    OpenHarmony实战开发-switch开发指导

    ;gt;</switch> </div> html /* xxx.css */ .container { flex-direction
    发表于 04-30 14:08

    Arm新Arm Neoverse计算子系统(CSS):Arm Neoverse CSS V3和Arm Neoverse CSS N3

    Arm宣布了两款新的Arm Neoverse计算子系统(CSS),它们基于“迄今为止最好的一代Neoverse技术”。是什么让这些新产品在拥挤的计算技术领域脱颖而出? Arm的两个新Arm
    的头像 发表于 04-24 17:53 1063次阅读
    Arm新Arm Neoverse计算子系统(<b class='flag-5'>CSS</b>):Arm Neoverse <b class='flag-5'>CSS</b> V3和Arm Neoverse <b class='flag-5'>CSS</b> N3

    HarmonyOS开发实例:【图片编辑应用】

    通过动态设置元素样式方式实现几种常见的图片操作,包括裁剪、旋转、缩放和镜像。
    的头像 发表于 04-23 09:42 444次阅读
    HarmonyOS开发实例:【图片编辑应用】

    鸿蒙ArkTS的起源和简介

    交互问题,它和HTML(负责页面内容)、CSS(负责页面布局和样式)共同组成了Web页面/应用开发的基础。随着Web和浏览器的普及,以及Node.js进一步将
    发表于 01-16 16:23