【发布时间】:2018-06-26 15:38:42
【问题描述】:
我想在 HTML canvas 上渲染一个时间 x 轴,当我平移(通过单击+拖动)或缩放时进行调整。
可能存在图表 JS 库来为曲线/图表执行此操作,但在我的情况下,x 轴上的数据不会是曲线,所以我需要从头开始。
在这里,当我在背景上单击+拖动时,原点x 会适应,这很好(参见 sn-p)。 但是如何在canvas的底部呈现这样的文本x轴呢?
--------------------------------------------------
| | | | |
jan 02 jan 03 jan 04 jan 05 jan 06
var drag = false;
var x = 0;
var last_position = {};
document.getElementById('canvas').onmousedown = function() { drag = true; }
document.getElementById('canvas').onmouseup = function() { drag = false; }
document.getElementById('canvas').onmousemove = function(e) {
var deltaX = last_position.x - e.clientX,
deltaY = last_position.y - e.clientY;
if (drag && typeof(last_position.x) != 'undefined') {
x += deltaX;
document.getElementById('pos').innerHTML = x;
}
last_position = { x : e.clientX, y : e.clientY };
}
#canvas { width: 400px; height: 150px; background-color: #ccc; }
<canvas id="canvas"></canvas>
<div id="pos"></div>
【问题讨论】:
标签: javascript html canvas