【发布时间】:2014-01-24 15:23:39
【问题描述】:
我有一个可水平滚动的 div,其中包含另一个 div(id 标尺)和一个画布。
在画布上,我正在绘制一条具有不同长度的水平线。
我需要画线,以便在标尺 div 中使用 javascript 和 css 渲染的标尺始终可以测量长度:
var canvas = new fabric.Canvas('canvas');
line_length = 14000;
adjusted_length = line_length / 6.367;
canvas.add(new fabric.Line([100, 100, adjusted_length, 100], {
left: 30,
top: 50,
stroke: '#d89300',
strokeWidth: 2
}));
$('#canvas_container').css('overflow-x', 'scroll');
$('#canvas_container').css('overflow-y', 'hidden');
drawRuler();
function drawRuler(){
$("#ruler[data-items]").val(line_length / 200);
$("#ruler[data-items]").each(function() {
var ruler = $(this).empty(),
len = Number($("#ruler[data-items]").val()) || 0,
item = $(document.createElement("li")),
i;
ruler.append(item.clone().text(1));
for (i = 1; i < len; i++) {
ruler.append(item.clone().text(i * 200));
}
ruler.append(item.clone().text(i * 200));
});
}
因此,如果线条长度为 14000,我将其除以 6.367 以得到在标尺上达到 14000 的线条长度。
但如果线长是 6600,我需要将它除以 6.1 之类的东西,才能使尺子上的长度达到 6600。
问题是我该如何处理,以便根据标尺正确测量不同的线长?
最好在http://jsfiddle.net/dH962/看到小提琴
【问题讨论】:
标签: javascript jquery css html5-canvas fabricjs