2013-06-03 3 views
1

Я использую анимацию jQuery для своего меню, и, как следствие, нужно использовать положение: абсолютное. Я хочу сохранить одно и то же расстояние между каждой из текстовых строк, но каждая из них имеет разную ширину. Использование функции ширины jQuery дает мне плохие результаты, есть ли лучший способ сделать это?Поддержание ширины между абсолютными элементами

$(document).ready(function() { 
    $(".menuitem").css('margin-left', -80); 
    var url = window.location; 
    $('.menulink').filter(function() { 
     return this.href == url; 
    }).removeClass('menulink'); 
    //$(".menuitem").animate({marginLeft: "20px"}, 2000); 
    var number = (".menuitem").length; 
    var px = number * 40 + 60; 
    $($(".menuitem").get().reverse()).each(function (i, e) { 
     $(this).delay(i * 200).animate({ 
      left: px 
     }, 1000, 'linear'); 
     px = px - 80; 
    }); 
}); 

jsFiddle example

+1

Я не думаю, что вам нужна 'позиция: absolute' анимировать элементы. 'position: relative' должно работать нормально. – zakangelle

+0

На jsFiddle у меня были проблемы с относительным и левым атрибутом, не могли бы вы показать мне пример? – Flaxbeard

ответ

2

вам не нужно абсолютное положение. (Или я misunterstand конечной цели)

наценка + дисплей будет делать:

.menuitem { 
    display:inline-block; 
    margin:0 1em 0 0 
} 

http://jsfiddle.net/GCyrillus/3bM9L/1

+0

Это не похоже на анимацию, которая была моей целью. – Flaxbeard

+1

Ширина позиции: относительная, как вы сказали, она должна работать нормально –

+0

Спасибо, есть ли способ поддерживать равное расстояние между каждым элементом, как маржа? – Flaxbeard

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