当前位置:首页 > 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的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化W…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…