当前位置:首页 > JavaScript

js实现刻度

2026-04-06 02:10:06JavaScript

js实现刻度

实现刻度的方法

使用Canvas绘制刻度

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

function drawScale(startX, startY, length, interval, count) {
    ctx.beginPath();
    ctx.moveTo(startX, startY);
    ctx.lineTo(startX + length, startY);
    ctx.stroke();

    for (let i = 0; i <= count; i++) {
        const x = startX + i * interval;
        ctx.moveTo(x, startY);
        ctx.lineTo(x, startY - 10);
        ctx.stroke();
    }
}

drawScale(50, 100, 300, 30, 10);

使用SVG实现刻度

const svg = document.getElementById('svg');

function createScale(startX, startY, length, interval, count) {
    const line = document.createElementNS('http://www.w3.org/2000/svg', 'line');
    line.setAttribute('x1', startX);
    line.setAttribute('y1', startY);
    line.setAttribute('x2', startX + length);
    line.setAttribute('y2', startY);
    line.setAttribute('stroke', 'black');
    svg.appendChild(line);

    for (let i = 0; i <= count; i++) {
        const tick = document.createElementNS('http://www.w3.org/2000/svg', 'line');
        tick.setAttribute('x1', startX + i * interval);
        tick.setAttribute('y1', startY);
        tick.setAttribute('x2', startX + i * interval);
        tick.setAttribute('y2', startY - 10);
        tick.setAttribute('stroke', 'black');
        svg.appendChild(tick);
    }
}

createScale(50, 100, 300, 30, 10);

使用HTML和CSS实现刻度

const scaleContainer = document.getElementById('scale-container');

function createHTMLScale(length, interval, count) {
    scaleContainer.style.width = `${length}px`;
    scaleContainer.style.height = '20px';
    scaleContainer.style.position = 'relative';
    scaleContainer.style.borderBottom = '1px solid black';

    for (let i = 0; i <= count; i++) {
        const tick = document.createElement('div');
        tick.style.position = 'absolute';
        tick.style.left = `${i * interval}px`;
        tick.style.bottom = '0';
        tick.style.width = '1px';
        tick.style.height = '10px';
        tick.style.backgroundColor = 'black';
        scaleContainer.appendChild(tick);
    }
}

createHTMLScale(300, 30, 10);

刻度数值标注

function addLabels(startX, startY, interval, count, unit) {
    for (let i = 0; i <= count; i++) {
        const label = document.createElementNS('http://www.w3.org/2000/svg', 'text');
        label.setAttribute('x', startX + i * interval);
        label.setAttribute('y', startY - 15);
        label.setAttribute('text-anchor', 'middle');
        label.textContent = i * unit;
        svg.appendChild(label);
    }
}

addLabels(50, 100, 30, 10, 5);

响应式刻度调整

function responsiveScale() {
    const width = window.innerWidth * 0.8;
    const interval = width / 10;
    drawScale(50, 100, width, interval, 10);
}

window.addEventListener('resize', responsiveScale);

标签: 刻度js
分享给朋友:

相关文章

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js怎么实现异步

js怎么实现异步

异步实现方法 JavaScript中实现异步操作主要通过以下几种方式: Promise Promise是ES6引入的异步解决方案,用于处理异步操作的成功或失败状态。 const promise =…

jquery和js

jquery和js

jQuery与JavaScript的区别 jQuery是一个基于JavaScript的库,封装了许多常用的功能,简化了DOM操作、事件处理、动画效果等。JavaScript是原生语言,功能更全面但代码…

vue js实现弹窗

vue js实现弹窗

Vue.js 实现弹窗的方法 使用组件实现弹窗 创建一个独立的弹窗组件,例如 Modal.vue,包含弹窗的 HTML 结构和样式。在组件中定义 props 控制弹窗的显示与隐藏。 <temp…

vue.js 实现登录

vue.js 实现登录

使用 Vue.js 实现登录功能 1. 创建 Vue 项目 使用 Vue CLI 初始化项目: vue create login-app 选择默认配置或手动配置(如 Babel、Router、V…

vue实现刻度标尺线

vue实现刻度标尺线

Vue 实现刻度标尺线的方法 使用纯 CSS 和 Vue 动态渲染 通过 Vue 的 v-for 指令动态生成刻度线,结合 CSS 控制样式和布局。以下是一个水平刻度标尺的示例: <templ…