当前位置:首页 > JavaScript

js怎么实现圆环

2026-01-30 22:05:55JavaScript

使用 SVG 实现圆环

SVG 是一种矢量图形格式,可以通过 <circle><path> 标签绘制圆环。以下是一个简单的示例:

<svg width="100" height="100">
  <circle cx="50" cy="50" r="40" fill="none" stroke="blue" stroke-width="10" />
</svg>
  • cxcy 定义圆心坐标。
  • r 定义半径。
  • fill 设置为 none 避免填充。
  • strokestroke-width 控制圆环颜色和宽度。

使用 Canvas 绘制圆环

Canvas 通过 arc 方法绘制圆环,结合 lineWidthstroke 实现效果:

const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');

ctx.beginPath();
ctx.arc(50, 50, 40, 0, 2 * Math.PI);
ctx.lineWidth = 10;
ctx.strokeStyle = 'blue';
ctx.stroke();
  • arc 参数依次为圆心坐标、半径、起始角度(0)、结束角度(2π)。
  • lineWidth 控制圆环粗细,strokeStyle 设置颜色。

使用 CSS 实现圆环

通过 CSS 的 borderborder-radius 可以模拟圆环效果:

js怎么实现圆环

<div class="ring"></div>

<style>
  .ring {
    width: 80px;
    height: 80px;
    border: 10px solid blue;
    border-radius: 50%;
    background: none;
  }
</style>
  • border-radius: 50% 将元素变为圆形。
  • border 定义圆环的宽度和颜色,background 设为透明。

动态圆环(进度条效果)

结合 Canvas 或 SVG 实现动态圆环,例如进度条:

Canvas 动态示例:

js怎么实现圆环

function drawProgress(percent) {
  const ctx = document.getElementById('canvas').getContext('2d');
  ctx.clearRect(0, 0, 100, 100);
  ctx.beginPath();
  ctx.arc(50, 50, 40, -Math.PI/2, (-Math.PI/2) + (percent / 100) * 2 * Math.PI);
  ctx.lineWidth = 10;
  ctx.strokeStyle = 'green';
  ctx.stroke();
}

drawProgress(75); // 绘制75%的圆环
  • 通过调整 arc 的结束角度实现进度效果。

SVG 动态示例:

<svg width="100" height="100">
  <path d="M50,10 A40,40 0 1 1 50,90 A40,40 0 1 1 50,10" 
        fill="none" stroke="red" stroke-width="10" 
        stroke-dasharray="251.2" stroke-dashoffset="62.8" />
</svg>
  • stroke-dasharray 设置为圆周长(2πr),stroke-dashoffset 控制进度(此处为75%)。

使用第三方库

库如 D3.js 或 Chart.js 可快速实现复杂圆环:

D3.js 示例:

const svg = d3.select("body").append("svg")
  .attr("width", 100)
  .attr("height", 100);

svg.append("circle")
  .attr("cx", 50)
  .attr("cy", 50)
  .attr("r", 40)
  .attr("fill", "none")
  .attr("stroke", "purple")
  .attr("stroke-width", 8);

以上方法覆盖了从基础到进阶的圆环实现,可根据需求选择合适方案。

标签: 圆环js
分享给朋友:

相关文章

js 实现vue

js 实现vue

实现 Vue 的核心功能 在 JavaScript 中实现 Vue 的核心功能需要模拟数据绑定、虚拟 DOM 和响应式系统。以下是一个简化版的实现思路: 响应式系统 通过 Object.define…

js实现

js实现

实现 JavaScript 功能的方法 在 JavaScript 中实现特定功能通常涉及多个步骤。以下是常见的实现方法: 基础语法和变量声明 使用 let 或 const 声明变量: let co…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

js实现延迟

js实现延迟

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

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…