Рафаэль - как нарисовать путь, который простирается до ширины? - PullRequest
0 голосов
/ 30 ноября 2011

Это может быть очень глупый вопрос, но как мне нарисовать путь, который будет растягиваться до ширины div?

Я экспериментирую с Raphaeljs, чтобы создать интерактивную диаграмму: пользователь может нажимать спарклайны, а линии сдвигаются вверх и вниз, чтобы показать текстовое содержимое.Я вижу, что прямоугольники Рафаэля и другие фигуры будут точно растягиваться до ширины, установив ширину на 100%, но я не могу получить линию, чтобы сделать это.

Я настроил бумагу так:

var SLAPaper = new Raphael( document.getElementById("LineSLA"), "100%", 60);

Настройте строку так:

var lineSLA = SLAPaper.path("F1 M 0,42L 103,12L 222,45L 390,13L 460,45L 453,27L 455,28L 450,0L 479,25");

Я также установил окно просмотра, но это не таккажется, не имеет значения.В любом случае я не могу установить% ширину в окне просмотра:

SLAPaper.setViewBox(0,0,1500,60, true);

Любая помощь приветствуется.Спасибо.

1 Ответ

1 голос
/ 01 декабря 2011

У меня лично были проблемы с использованием процентов для определения размера бумаги и объектов в Рафаэле, особенно в Internet Explorer.Лучшее, что я мог бы придумать, - это масштабировать линию, чтобы она поместилась внутри бумаги, исходя из ширины пути (при условии, что ширина больше высоты):

var line = SLAPaper.path("F1 M 0,42L 103,12L 222,45L 390,13L 460,45L 453,27L 455,28L 450,0L 479,25");
var scl = SLAPaper.width / line.getBBox().width;
line.transform('S' + scl + ',' + scl + ',0,0');
...