Отказ от ответственности - прочитал несколько связанных сообщений , но, похоже, они не решали мою точную проблему.
Проблема
Панель моего ползунка содержит неупорядоченный список с различными номерами <li>
элементов различной ширины.Каждый LI содержит изображение, отсюда и причина разных размеров. например, 5 элементов = 2000 пикселей, 6 элементов = 2100 пикселей
Сейчас.Если я установил для ползунка фиксированную ширину 2500px
, элементы li
будут правильно отображаться в ползунке.
Однако, поскольку общая ширина li
изменяется, количество пробелов может быть разнымПространство для прокрутки в конце ползунка, который разрушает эффект.
Если я не не указываю ширину UL в CSS, мои элементы LI будут плавать нормально и wrap
вместо заполнения ширины ползунка (потому что нет явной ширины).
То, что я пробовал
Итак, я пришел к мысли:
$('ul#slide-ul li').each(function(){
sliderWidth += $(this).outerWidth(); // LI's have padding
});
который возвращает правильную, фактическую ширину содержимого слайдера.Я могу использовать это значение, чтобы установить ширину ползунка, и все работает отлично - в автономном режиме.
В режиме онлайн, в FF, Chrome и IE, при первой загрузке страницы экран LI отображается так, как если бы ширина не была установлена.Затем я обновляю страницу, и все в порядке.
Я думаю, что это происходит из-за того, что изображения внутри LI не были кэшированы или загружены на данный момент, и нет никаких предварительныхопределенной ширины, поэтому размеры LI не равны true
размеру.
Сводка
Есть ли лучший способ получить ширину UL с различным содержимым для использования внутри слайдера,и предотвращение этой проблемы с загрузкой / обновлением страницы.
Извините за длинное, трудное для отслеживания сообщение, но я не могу опубликовать действующую ссылку.Я сделаю js fiddle, если это поможет, но, к сожалению, кода много.
Спасибо.
Редактировать
http://jsfiddle.net/VV7qp/6/
Вот JSFiddle более или менее.Боюсь, что без живого сервера довольно сложно воспроизвести его.