当前位置:首页 > 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实现。

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

使用SVG绘制月亮

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

<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单位确保月亮大小随视窗变化,适合响应式布局。

js实现月亮

<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 实现继承

原型链继承 通过让子类的原型对象指向父类的实例来实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Par…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

js实现交换

js实现交换

交换变量的方法 在JavaScript中,交换两个变量的值有多种方法。以下是常见的几种实现方式: 使用临时变量 通过引入一个临时变量来存储其中一个变量的值,实现交换: let a = 1; le…