Неправильный расчет ширины элементов в списке. Работает через раз. jQuery
Привет всем форумчанам.
Проблема вот в чем. Есть интернет магазин. С помощью списка, в горизонтальную линию выводится список категории магазина. Есть скрипт, который выставляет отступы для категорий, чтобы они растягивались на всю ширину. Проблема в том, что работает он как-то через раз. Как правило, при первом открытии страницы расчет ширины идет слегка неправильный.При обновлении страницы все вроде норм. Если не трудно, прошу указать, про что именно стоит читать, чтобы понять в чем ошибка. Ссылка на сайт
$(document).ready(function(){
var mainwidth = $('#nav').width();//ширина всего списка
var elem_width =0;
var count=0;
$('#nav li.item1_norm').each(function(i){
elem_width = elem_width+$(this).outerWidth(); //суммируем ширину всех элементов списка. именно тут идет неправильный расчет.
count=i+1;
});
alert(count);
elem_width=parseInt(elem_width);
alert(elem_width);
var space = mainwidth-elem_width;//рассчитываем свободное место
var one_margin = parseInt(space/(count)); //рассчитываем отступ для 1 элемента
$('#nav li.item1_norm').each(function(e){
$(this).css("margin-right", one_margin);
if($(this).hasClass('last')){ //убираем отступ для последнего элемента списка
$(this).css("margin-right", "0");
}
});
});
|
ByKraB,
Сделайте скриншот - пометьте стрелками о каком элементе идёт речь Cкриншот перезалейте сюда http://uploads.ru/ и выложите ссылку(вложения не работают) И почему невозможно реализовать это средствами css ? |
каким образом можно реализовать через css динамическое определение отступов?
|
Элемент списка переносится на новую строку.
http://uploads.ru/?v=W8dEv.png А периодически работает. http://uploads.ru/?v=w5SDZ.png |
Цитата:
Цитата:
|
Deff,О каком постоянном числе можно говорить, если речь идет о ДИНАМИЧЕСКОМ определении отступов?
число категорий может меняться со временем. с html версткой все правильно, никаких проблем нет. проблема в скрипте. смотрел через отладчик, периодически ширина каждого li.item1_norm меньше, чем реальный размер. Поэтому и расчет выходит неверный. |
какое отношение имеет элемент к верстке? это категория товаров и она есть на сайте.
window.onload действительно решил проблему. теперь хотелось бы узнать ,почему $(document).ready() создавал проблему? |
ByKraB,
ну у мну подозрение что саnvas имеет продолжительную ассинхронную загрузку |
| Часовой пояс GMT +3, время: 06:55. |