Я совершенно новый для Рафаэля, и мне было интересно, есть ли способ, которым я могу нарисовать прямоугольник, и нарисую текст внутри него и прикрепить его каким-то образом, чтобы при перемещении и масштабировании прямоугольника текст перемещался и масштабировался также? Если нет, как я могу добиться этого эффекта?Могу ли я прикрепить/привязать текст к элементам в Рафаэле?
3
A
ответ
4
Один из способов будет использовать Sets так:
var paper = Raphael("holder", 200, 200);
paper.setStart();
paper.rect(-50, -50, 100, 100);
paper.text(0, 0, "hello");
var st = paper.setFinish();
st.transform("r10").translate(100, 100);
Совет: Обратите внимание, что вы должны отслеживать оси вращения на свой собственный, если вы не используете 0,0
, как центр. Я лично хотел сохранить его на 0,0
, а затем перевести его туда, где я хочу.
3
Вы можете попробовать использовать это вместо этого. Размер прямоугольника изменяется по мере увеличения длины текста.
var recttext = paper.set();
el = paper.rect(0, 0, 300, 200);
text = paper.text(0,10, "Hi... This is a test to check whether the rectangle dynamically changes its size.").attr({"text-anchor":"start",fill:'#ff0000',"font-size": 14});
text1=paper.text(0,30,"hi").attr({"text-anchor":"start",fill: '#ff0000',"font-size": 14});
recttext.push(el);
recttext.push(text);
recttext.push(text1);
alert(recttext.getBBox().width);
alert(recttext.getBBox().height);
var att = {width:recttext.getBBox().width,height:recttext.getBBox().height};
el.attr(att);
recttext.translate(700,400);
1
Вы можете использовать метод данных «Рафаэля», чтобы связать два элемента вместе.
paper = Raphael(paper, 400, 400);
var circle = paper.circle(50, 50, 20)
.attr({
"fill": "#0ff"
})
.data("initialR", 20);
var labelize = function (shape, label) {
if (!label) {
var label = "StackOverflow"
};
var label = paper.text(shape.attr("cx"), shape.attr("cy"), label)
.attr({
"opacity": 0
});
shape.data("label", label);
var hoverIn = function() {
this.animate({
"r": 100
}, 500, "<>");
this.data("label").animate({
"opacity": 1
}, 500);
};
var hoverOut = function() {
this.animate({
"r": this.data("initialR")
}, 500, "<>");
this.data("label").animate({
"opacity": 0
}, 500);
};
shape.hover(hoverIn, hoverOut, shape, shape);
return shape;
};
circle = labelize(circle, "CaptSaltyJack");
Смежные вопросы
- 1. Могу ли я использовать печать в Рафаэле без Cufon?
- 2. Вращающийся текст в Рафаэле скремблирует текст
- 3. Как сделать текст центрированным в Рафаэле js?
- 4. Могу ли я получить доступ к элементам фона Unity?
- 5. Могу ли я применить CSS к элементам iframe?
- 6. Как я могу получить доступ к элементам указателя к карте?
- 7. Можно ли создать элемент unzoom в Рафаэле?
- 8. Могу ли я фиксировать текст в листовке?
- 9. Группа элементов в Рафаэле
- 10. как я могу получить доступ к элементам массива в классе
- 11. Как я могу программно обращаться к элементам, определенным в ContentTemplate?
- 12. Как я могу получить доступ к элементам списка в списке?
- 13. Как я могу получить доступ к элементам в кортеже?
- 14. Как я могу получить доступ к элементам JSONArray в JSP
- 15. Как я могу получить доступ к элементам объекта в javascript?
- 16. Могу ли я программировать текст в UITextView?
- 17. Могу ли я выделить текст в JLabel?
- 18. Коническая линия в Рафаэле
- 19. Как я могу выборочно обращаться к элементам, возвращаемым подпрограммой Perl?
- 20. Как я могу получить доступ к элементам объекта через строку?
- 21. Как я могу получить доступ к элементам объекта Javascript численно?
- 22. setViewBox() в Рафаэле?
- 23. размытия в Рафаэле
- 24. Анимационная парадигма в Рафаэле
- 25. Как я могу получить доступ к элементам удаления (unids)?
- 26. Как я могу получить доступ к другим элементам управления окном
- 27. Как я могу применить правила CSS к смежным смежным элементам?
- 28. Как я могу получить доступ к элементам и атрибутам XML?
- 29. Как я могу применить функцию к элементам внутри моего списка?
- 30. Как я могу получить доступ к элементам массива списка