当前位置:首页 > JavaScript

js实现画框

2026-03-15 08:54:25JavaScript

使用Canvas绘制矩形框

在HTML中创建Canvas元素,通过JavaScript获取上下文并绘制矩形:

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

// 设置边框样式
ctx.strokeStyle = 'red';
ctx.lineWidth = 3;

// 绘制矩形框
ctx.strokeRect(50, 50, 300, 200);

使用CSS border属性创建视觉框

通过纯CSS方式快速创建带边框的元素:

<div class="box-frame"></div>
.box-frame {
  width: 300px;
  height: 200px;
  border: 2px dashed #3498db;
  border-radius: 8px;
  padding: 20px;
  background-color: #f8f9fa;
}

SVG实现矢量框

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

<svg width="400" height="300">
  <rect x="50" y="50" 
        width="300" height="200"
        stroke="#2ecc71"
        stroke-width="4"
        fill="none"
        rx="10" />
</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;

  const width = e.offsetX - startX;
  const height = e.offsetY - startY;

  ctx.strokeRect(startX, startY, width, height);
});

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

带阴影效果的高级画框

实现带有阴影和渐变效果的框:

js实现画框

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

ctx.shadowColor = 'rgba(0,0,0,0.5)';
ctx.shadowBlur = 10;
ctx.shadowOffsetX = 5;
ctx.shadowOffsetY = 5;

const gradient = ctx.createLinearGradient(0, 0, 400, 0);
gradient.addColorStop(0, '#ff7e5f');
gradient.addColorStop(1, '#feb47b');

ctx.strokeStyle = gradient;
ctx.lineWidth = 8;
ctx.lineJoin = 'round';

ctx.strokeRect(50, 50, 300, 200);

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

相关文章

js实现倒计时

js实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时功能可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是几种常见的实现方式: 使用 setInterva…

js实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.j…

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似: func…