Анимация: jQuery или Рафаэль? - PullRequest
5 голосов
/ 19 сентября 2009

Я создаю страницу, которая будет анимировать объекты (image / shape / div) и перемещать их по экрану. Иногда может быть большое количество объектов, плавающих и взаимодействующих.

Требуется, чтобы данные были связаны с каждым объектом, поскольку каждый из них будет иметь идентификатор. Поэтому, если я щелкну один объект, он может получить этот идентификатор, а затем обратиться к массиву, который содержит данные об этом объекте.

Я спорю, стоит ли мне использовать функцию jQuery $ .animate или использовать Рафаэля. Я знаю, что SVG было бы неплохо использовать, но я не уверен, смогу ли я дать каждый объект и идентификатор, а затем вызвать div, содержащий связанные данные, по щелчку Могут ли щелкать элементы SVG ссылками на элементы DOM? Насколько хорошо SVG работает с динамическим текстом? Я также обеспокоен тем, сколько вычислительной мощности займет анимация. Есть ли лучший выбор в этом отношении?

Кстати, я не говорю о jQuery SVG, просто обычные jQuery и DOM.

Если у кого-то есть понимание этого или предложения, они будут очень благодарны!

Ответы [ 2 ]

2 голосов
/ 24 сентября 2009

О быстрых анимациях jQuery, вас может заинтересовать это: http://code.zemanta.com/fry/ruleanimation/

0 голосов
/ 19 сентября 2009

Да. Все графические объекты добавляются как объекты DOM.

Демо: http://raphaeljs.com/github/impact.html

простой демонстрационный код, который рисует круг, назначает идентификатор и прикрепляет событие onclick:

var paper = Raphael(10, 50, 320, 200);
// Creates circle at x = 50, y = 40, with radius 10
var circle = paper.circle(50, 40, 10);
// Sets the fill attribute of the circle to red (#f00)
circle.attr("fill", "#f00");
// Sets the stroke attribute of the circle to white (#fff)
circle.attr("stroke", "#fff");
//assign circle id="lolcats"
circle.node.id="lolcats";
//onclick alert id
circle.node.onclick=function(){alert(this.id)};

Если вам нужно сделать причудливый векторный рисунок и манипуляции, Рафаэль был бы хорош. Если нет, то вы можете просто использовать то, что вы знаете. Также вы можете использовать jQuery и Raphael одновременно.
Судя по всему, jQuery должно быть достаточно для ваших нужд.

...