当前位置:首页 > JavaScript

js实现月亮

2026-02-01 19:28:25JavaScript

使用Canvas绘制月亮

在HTML中创建一个Canvas元素,通过JavaScript绘制月亮形状。使用arc方法绘制两个圆形,通过叠加形成月牙效果。

<canvas id="moonCanvas" width="200" height="200"></canvas>
<script>
  const canvas = document.getElementById('moonCanvas');
  const ctx = canvas.getContext('2d');

  ctx.fillStyle = '#FDB813';
  ctx.beginPath();
  ctx.arc(100, 100, 80, 0.5 * Math.PI, 1.5 * Math.PI);
  ctx.arc(60, 100, 80, 1.5 * Math.PI, 0.5 * Math.PI, true);
  ctx.fill();
</script>

使用CSS绘制月亮

通过CSS的box-shadowborder-radius属性创建月亮效果。这种方法不需要JavaScript,纯CSS实现。

js实现月亮

<div class="moon"></div>
<style>
  .moon {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    box-shadow: 25px 25px 0 0 #FDB813;
  }
</style>

使用SVG绘制月亮

SVG矢量图形适合创建可缩放的月亮图标。使用path元素定义月牙形状。

js实现月亮

<svg width="200" height="200" viewBox="0 0 200 200">
  <path d="M100,20 A80,80 0 1,1 100,180 A60,60 0 1,0 100,20 Z" fill="#FDB813"/>
</svg>

动画效果实现

为月亮添加旋转动画效果,结合CSS的transformanimation属性。

<div class="animated-moon"></div>
<style>
  .animated-moon {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    box-shadow: 25px 25px 0 0 #FDB813;
    animation: rotate 5s infinite linear;
  }

  @keyframes rotate {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
  }
</style>

响应式月亮设计

使用CSS的vw单位确保月亮大小随视窗变化,适合响应式布局。

<div class="responsive-moon"></div>
<style>
  .responsive-moon {
    width: 10vw;
    height: 10vw;
    border-radius: 50%;
    box-shadow: 2.5vw 2.5vw 0 0 #FDB813;
  }
</style>

标签: 月亮js
分享给朋友:

相关文章

js实现轮播

js实现轮播

实现基础轮播效果 使用HTML结构创建轮播容器和图片元素: <div class="carousel"> <div class="carousel-inner">…

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previ…

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEve…