2010-08-11 2 views
0

Я создал a #logo DIV, который состоит из меньшего размера #circle DIV & h1. #circle действует как DIV/canvas, что мой объект Raphael.js, круг, отображается. Моя цель состояла в том, чтобы сделать это, когда пользователь наводит курсор на #logo DIV, круг Raphael.js и h1 будут анимированы, но я побежал в некоторые проблемы.Почему мой объект окружения Raphael.js не получает атрибуты 'attr', анимированные и не получающие объект события jQuery HandlerOut?

  • По какой-то причине мой Raphaël.js объект круг не получает это .attr() метод анимации во время события мыши JQuery .hover()handlerIn. Это изменение происходит немедленно.

  • Кроме того, во время события handlerOut круг Raphael.js не применяется к его методу .attr(). Он просто держит .attr() атрибуты, которые были применены к нему во время handerIn события

Код для my example of this issue is located here. Вы можете щелкнуть предварительный просмотр (вверху справа) на этой странице, чтобы увидеть код в действии.

ответ

4
$(c.node).animate({fill: "#666"}, 2000); 

Это анимация jQuery. Очевидно, jQuery не имеет представления о объектах Рафаэля. Используйте Raphaël анимацию вместо:

c.animate({fill: "#666"}, 2000); 

Общие рекомендации не трогают свойство узла, если вы действительно не знаете, что вы делаете.

+0

Спасибо. Теперь круг получает свои атрибуты, измененные во время handlerIn & handlerOut, но теперь курсор над кругом SVG исчезает. Есть ли метод Рафаэля, который я могу разместить после метода анимации, чтобы изменить курсор на курсор/указатель мыши? Или я должен просто положить $ (c.node) .css ('cursor', 'pointer'); на строке после c.animate ({fill: "# 666"}, 2000); ? – 2010-08-12 11:08:33

+4

c.attr ({cursor: "pointer"}); Не прикасайтесь к узлу. –

+0

большое спасибо. это сработало. – 2010-08-13 15:19:12

 Смежные вопросы

  • Нет связанных вопросов^_^