jQuery - Наведите указатель мыши на элемент и анимируйте элемент в этой позиции. - PullRequest
0 голосов
/ 23 апреля 2011

Я хочу сделать меню, которое .. делает это: http://jsfiddle.net/8U9fy/1/ (не хотел беспокоить их все так хорошо ...) Но ... я хотел бы сделать так, чтобы это не меню/ размер ссылки зависит .. (что-то вроде назначения стрелки для перемещения в соответствии с определенным классом элементов .. или что-то в этом роде)

Я думал что-то вроде .. http://docs.jquery.com/UI/Position Но я не знаю, если .animateможет использоваться вместе с ним ..

Итак, чтобы прояснить это ... проблема на самом деле не в том, чтобы расположить стрелку в соответствии с конкретным элементом, а скорее .. сделать это во время анимации движения стрелки ..

Идеи?

Редактировать: Я хотел бы добиться чего-то подобного, как то, что я сделал в этом примере jsfiddle .. Бути хотел бы сделать это так, чтобы не имело значения, какого размера меню или ссылки ...

В настоящее время положение стрелки контролируется левыми значениями из одной позиции, что означает, что если бы я хотел .. скажем, добавил отступ между ссылками, мне пришлось бы снова и снова корректировать левые значения .animate ..

1 Ответ

2 голосов
/ 23 апреля 2011

Нечто подобное должно работать.Вам нужно настроить расчет местоположения в соответствии с вашими потребностями.

var arrow = $(".Arrow");
$("ul#menu").delegate('a', 'mouseenter', function() {
    var left = $(this).offset().left - arrow.parent().offset().left + $(this).outerWidth()/2 - arrow.width()/2
    arrow.stop().animate({left: left}, 800, 'easeOutBack');
}); 

(отредактировано, чтобы добавить вычисление kingjiv 'left').

...