Я работаю над навигационным меню, структура разметки ниже, элемент span добавлен в document.ready: -
<ul id="menu">
<li class="menu act">Additional Fixture<span class="active"></span></li>
<li class="menu">list with sub menu
<ul class="sub-menu">
<li class="menu">Option one</li>
<li class="menu">Option two</li>
<li class="menu">Option three</li>
<li class="menu">Option four</li>
<li class="menu">Option five</li>
</ul>
</li>
<li class="menu"">Special Tricast</li>
Диапазон расположен абсолютно с наборомширина и высота и содержит изображение стрелки в качестве фона.
Я использую jQuery для анимации изображения диапазона / стрелки, когда пользователь нажимает на класс меню, чтобы переместить активный диапазон за выбранным меню (li)элемент в качестве визуального индикатора для их выбора.
Это прекрасно работает, когда active (act) установлен в корне li, но если он расположен где-либо еще в списке, например: -
<ul id="menu">
<li class="menu">Additional Fixture<span class="active"></span></li>
**<li class="menu act">list with sub menu</li>**
</ul>
Стрелка позиционируется правильно, когда документ загружается, но не переходит к правильному выбору при нажатии пользователем.Я пробовал и положение, и смещение для моей переменной divLocation, и в настоящее время я использую положение, так как смещение не работает даже в корне.пользователь перешел на, поэтому анимация должна работать с любой начальной позиции независимо от длины или позиции списка.
Я пробирался по форумам и пробовал несколько вещей, но я ошеломлен, если честнои был бы очень признателен за любую помощь !!
Ниже приведен код jQuery для анимации изображения пролета / стрелки: -
var divLocation = $(this).position();
$("span.active").animate({
'top': divLocation.top + topOffset,
'left': divLocation.left + leftOffset
}, animationSpeed, "linear", function(){
$(selectedElement).addClass("text-light");
$(selectedElement).fadeTo("100", opacityIn);
});