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

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一个…

js实现显示隐藏

js实现显示隐藏

显示隐藏的实现方法 在JavaScript中,实现元素的显示和隐藏可以通过多种方式完成。以下是几种常见的方法: 修改CSS的display属性 通过改变元素的display属性可以在none(隐藏)…

js实现排序

js实现排序

数组排序方法 JavaScript提供了内置的sort()方法用于数组排序。默认情况下,sort()将元素转换为字符串并按照Unicode码点排序。对于数字排序,需传入比较函数。 const num…

js实现导航菜单

js实现导航菜单

使用HTML和CSS创建基础结构 导航菜单的基础结构通常由HTML的无序列表(<ul>)和列表项(<li>)组成,每个列表项包含一个链接(<a>)。CSS用于样式化…

js验证码实现

js验证码实现

验证码的基本原理 验证码(CAPTCHA)用于区分人类用户和自动化程序。常见类型包括图形验证码、滑动验证码、短信验证码等。JavaScript 可用于前端验证码的生成和验证逻辑。 图形验证码实现 使…