Библиотека Raphael JS как отключить сдвиг текста на многострочном - PullRequest
0 голосов
/ 28 февраля 2010

По умолчанию при добавлении текстового объекта к бумаге библиотека JavaScript Raphael центрирует текст вокруг точки y. Он в основном берет высоту, делит ее на 2 и присоединяет текст к новой координате y. Я ищу другое поведение, когда текст остается с той же координатой, даже если вы добавляете несколько строк.

Мне было интересно, есть ли у кого-нибудь чистый способ изменить это поведение. Я могу изменить его в исходном коде, но я не хотел бы постоянно поддерживать его, когда выйдет новая версия.

Спасибо!

Ответы [ 2 ]

1 голос
/ 01 марта 2010

В основном вы описали действие по умолчанию для текстовых объектов.

Используйте 'text-anchor': 'start' внутри метода "attr".

Я показываю вам справочную базу данных дополнительных ресурсов Raphael, где вы можете посмотреть текстовые примеры и переключаться с ними в интерактивной среде ....

http://www.irunmywebsite.com/raphael/additionalhelp.html?q=text

0 голосов
/ 21 ноября 2014

Вот как я это делаю в одном из моих проектов. Вы можете попробовать это, если ypu вставит код в http://raphaeljs.com/playground.html

// create rectangle 

var locx = 300
var locy = 200
paper.rect(locx, locy, 100,100)

// create raw text

element2 = paper.text(locx, locy, "Raphael\n \njust\nrocks")

element2.attr("text-anchor", "start")

// measure the raw text

var bbox = element2.getBBox()


// compute the scale

var scalex = 100/bbox["width"]
var scaley = 100/bbox["height"]

var translation = "s"+ scalex + "," + scaley

// scale the text
element2.transform(translation)

// measure the scaled text
var bbox = element2.getBBox()

// compute the offets of the scaled text

offsetx = locx - bbox["x"]
offsety = locy - bbox["y"]

translation = translation + "T" + offsetx + "," + offsety

// do the final translation

element2.transform(translation)

Более элегантные решения приветствуются.

...