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

    文章

    511

    浏览量

    53402
  • Canvas
    +关注

    关注

    0

    文章

    15

    浏览量

    10946
收藏 人收藏

    评论

    相关推荐

    Facebook开源StyleX如何在JavaScript中写CSS呢?

    Meta(原 Facebook)开源了全新的 CSS-in-JS 库 StyleX。
    的头像 发表于 12-14 10:03 261次阅读

    如何设置placeholder的样式

    要设置placeholder(占位符)的样式,可以使用CSS样式实现。以下是一些常用的方法: 使用::placeholder伪元素: 可以使用 ::placeholder 伪元素选择
    的头像 发表于 11-30 10:20 1138次阅读

    js文件可以直接浏览器运行吗

    载和运行。 在Web开发中,JS常被用于实现动态交互效果和页面逻辑控制。通过JS代码嵌入到网页的HTM
    的头像 发表于 11-27 16:45 1523次阅读

    怎么用js保存数据

    JS保存数据是Web开发中非常重要的一个功能,它能够将用户的输入或者其他数据存储在浏览器中,随后方便地读取和使用。在本文中,我们将讨论不同的数据保存方式以及如何使用JS在客户端中实现
    的头像 发表于 11-27 16:10 393次阅读

    Python调用JS的 4 种方式

    的 Python 实现 本文将聊聊利用 Python 调用 JS 的4种方式 2. 准备 以一段简单的 JS 脚本为例,将代码写入到文件中 //norm.
    的头像 发表于 10-30 09:41 302次阅读

    HarmonyOS实现几种常见图片点击效果

    ││└──zh-CN.json │└──pages │└──index │├──index.css// 首页样式文件 │├──index.hml// 首页布局文件 │└──index.js// 首页脚本文件 └──entry
    发表于 09-07 15:50

    开发指导—利用CSS动画实现HarmonyOS动效(一)

    注:本文内容分享转载自HarmonyOS Developer官网文档 一. CSS语法参考 CSS是描述HML页面结构的样式语言。所有组件均存在系统默认样式,也可在页面
    发表于 09-01 14:52

    ESP8266 HTML工作正常,不能内联CSS是为什么?

    内联 CSS 的示例: “This is a red heading with a black background\" 我无法让 C++ IDE 像这样解释该行是。有解决办法吗?
    发表于 06-12 08:07

    介绍一下单体应用中Spring Boot对静态资源的一些映射规则

    在实际项目开发中,除了程序代码外,还需要一些静态资源,比如公司logo,背景图,css样式文件,js文件等等
    的头像 发表于 06-02 11:02 610次阅读
    介绍一下单体应用中Spring Boot对静态资源的一些映射规则

    Spring Boot对静态资源的映射规则

    在实际项目开发中,除了程序代码外,还需要一些静态资源,比如公司logo,背景图,css样式文件,js文件等等
    的头像 发表于 06-02 10:04 712次阅读
    Spring Boot对静态资源的映射规则

    你们知道前端大神是怎么学CSS的嘛

    有人说,要成为前端高手很容易:先学好 HTML/CSS/JavaScript 三剑客,再学会三大前端框架——Vue/React/Angular,快则三个月,慢则半年,前端的工作就没有搞不定的了。
    的头像 发表于 05-30 11:26 405次阅读

    UltraEdit主要功能

    等。 UltraEdit的 CSS编辑功能包括集成的CSS 样式构建器、CSS语法高亮显示、大括号匹配、代码折叠、函数列表中的css
    的头像 发表于 05-26 15:23 866次阅读
    UltraEdit主要功能

    HarmonyOS低代码开发-创建新工程方式

    使用低代码开发应用或服务有以下两种开发方式: 创建一个支持低代码开发的新工程,开发应用或服务的UI界面。在已有工程中,创建Visual文件来开发应用或服务的UI界面。ArkTS工程和JS工程使用低
    发表于 05-18 16:34

    服务器网页版上位机设计-03-上位机(完结)

    . 首先需要在js中获取html的元素.有多种方法,我选择类似css类选择器的方法,这是为了和我的css筛选方式相同. 参考:>
    发表于 05-08 11:38 0次下载
    服务器网页版上位机设计-03-上位机(完结)

    python爬虫之某站JS加密逆向分析

    实现的目标:可以通过JS加密逆向后,得到加密参数,请求获取数据。此方法同样适用于被前端JS加密的用户名、密码爆破。
    的头像 发表于 05-05 15:40 887次阅读
    python爬虫之某站<b class='flag-5'>JS</b>加密逆向分析