我一直工作在两种不同的方法来创建HTML5代码的图形的画布,让图示和图表的水平滚动。画布表示各种时间表。当我们水平滚动时,这个想法是以时间线的形式代表几年......例如:说出计算机的历史发展......我在图上参照xy坐标绘制点。这是目前手动。后来我打算基于sql查询做出它。那么当我滚动更多时,相应地显示未来几年/过去几年绘制的点数......给它持续的时间线感觉。帆布标签和滚动问题
我一直试图在HTML5 2种方法canvas..some已经使用SVG建议,Silverlight来尝试这一点,GDI + ....
方法1: -
方法 - 创建网格,在网格上用变量列表绘制点,在画布上单击鼠标 - 触发被激活,拖动画布水平滚动,再次单击画布并禁用滚动。
优势,这种方法 - 水平滚动就像一个魅力!
然而,这种方法的问题是,我不知道如何绑定在该网格y轴的标贴,使得每个滚动帧有两个X轴和Y轴一致的标签。
注意:您可以查看我的下一个办法,看看有什么我通过标签的意思。
方法2: -
与第二个方法的问题,主要是像在捕获鼠标滚动/拖拽事件,并试图重新绘制Canvas元素的功能: -
window.onmousemove = function (e) {
var evt = e || event;
if (dragging) {
var delta = evt.offsetX - lastX;
translated += delta;
//console.log(translated);
ctx.restore();
ctx.clearRect(0, 0, 930, 900);
ctx.save();
ctx.translate(translated, 0);
lastX = evt.offsetX;
timeline();
}
}
另一个问题可能是,即使timeli ne()在画布卷动时被调用,网格被静态绘制,在x = 65和x = 930 /之间,因此没有其他网格被绘制。
尽管使用这种方法(使用第一种方法证明是困难的)标记是可能的,但网格并不一致,一旦我滚出第一帧,网格消失......虽然绘制点在我们滚动时,未来仍然可见。
在我的第一个方法我用不断重演,我们滚动画布上的网格...但是标签变得难以与......和在2个办法,我的标签,但创建重复电网的那种风格变得困难。我遇到了很多障碍。不知何故,我需要结合这两种方法来创建解决方案。谁能帮忙?
如果有人也可以给我链接到超酷的帆布相关的理论材料。我会很感激。:)
更新第二方法和溶液: -
用这种方法在y轴标签保持恒定。背景网格正在复制。虽然这是我寻找的解决方案(它不是完美的),但任何修改都是非常受欢迎的。
但这并不能解决我遇到的问题。此外,d3链接不起作用 – Philo
这里是更新后的链接。它似乎同时被改变了。我没有说它会解决你的问题,我只是想给一个好的数据可视化框架的参考。 –
gotchya。谢谢。仍然在寻找一些HTML5画布的参考。 – Philo