当前位置:首页 > JavaScript

js实现画框

2026-04-07 02:24:03JavaScript

使用 Canvas API 绘制矩形框

在 HTML 中创建一个 <canvas> 元素,通过 JavaScript 获取其上下文并绘制矩形:

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

  ctx.strokeStyle = 'red';  // 边框颜色
  ctx.lineWidth = 3;        // 边框宽度
  ctx.strokeRect(50, 50, 200, 100);  // (x, y, width, height)
</script>

使用 CSS 和 DOM 元素创建边框

通过动态创建 DIV 元素并添加 CSS 样式实现画框效果:

const box = document.createElement('div');
box.style.position = 'absolute';
box.style.border = '2px dashed blue';
box.style.left = '100px';
box.style.top = '100px';
box.style.width = '300px';
box.style.height = '150px';
document.body.appendChild(box);

SVG 实现矢量边框

使用 SVG 创建可缩放的矢量边框:

<svg width="400" height="200">
  <rect x="50" y="50" width="300" height="100" 
        stroke="green" stroke-width="4" fill="none" />
</svg>

实现可拖拽调整的画框

结合鼠标事件实现交互式画框:

const canvas = document.getElementById('interactiveCanvas');
const ctx = canvas.getContext('2d');
let isDrawing = false;
let startX, startY;

canvas.addEventListener('mousedown', (e) => {
  isDrawing = true;
  startX = e.offsetX;
  startY = e.offsetY;
});

canvas.addEventListener('mousemove', (e) => {
  if (!isDrawing) return;

  ctx.clearRect(0, 0, canvas.width, canvas.height);
  ctx.strokeStyle = 'purple';
  ctx.lineWidth = 2;
  ctx.strokeRect(
    startX, 
    startY, 
    e.offsetX - startX, 
    e.offsetY - startY
  );
});

canvas.addEventListener('mouseup', () => {
  isDrawing = false;
});

带圆角的边框实现

使用 Canvas 或 CSS 创建圆角边框:

js实现画框

// Canvas 圆角矩形
ctx.beginPath();
ctx.lineWidth = 4;
ctx.strokeStyle = 'orange';
ctx.roundRect(100, 50, 200, 150, [20]);
ctx.stroke();

// CSS 圆角
const roundedBox = document.createElement('div');
roundedBox.style.border = '3px solid teal';
roundedBox.style.borderRadius = '15px';
roundedBox.style.width = '250px';
roundedBox.style.height = '120px';
document.body.appendChild(roundedBox);

标签: 画框js
分享给朋友:

相关文章

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callbac…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js实现pdf在线预览

js实现pdf在线预览

使用PDF.js实现PDF在线预览 PDF.js是由Mozilla开发的一个开源JavaScript库,可以在网页中直接渲染PDF文件。以下是实现PDF在线预览的步骤: 引入PDF.js库 在HT…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js实现图表

js实现图表

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