Неправильный расчет ширины элементов в списке. Работает через раз. 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, время: 12:47. |