Получение полного width элемента
Перейду сразу к частному случаю. Положим есть ul элемент с overflow-x : scroll. в нем есть li который вдлину больше чем ul. li.offsetWidth разумеется соответствует ul.offsetWidth. Вопрос как получить полную длину li элемента. Корявый вариант:
- спмощью увеличения на энное большое число li.scrollLeft'а пока элемент не займет крайнее правое положение. - сохранить li.scrollLeft - вернуть li.scrollLeft в изначальное состояние в котором он был до наших гнусных действий. Способ уныл чуть более чем полностью, вопрос как правильно это сделать? |
Цитата:
|
Цитата:
примечание . li имеет width : auto |
Вообщем все выродилось в такую функцию которая меня раздражает
function getMaxScrollLeft (o) { if (typeof o == 'string') { o = document.getElementById(o); } if (typeof o != 'object') { return undefined; } var origScrollLeft = o.scrollLeft, iter = 1000, scrollLeft = origScrollLeft; do { scrollLeft = o.scrollLeft; o.scrollLeft += iter; } while (o.scrollLeft != scrollLeft); o.scrollLeft = origScrollLeft; return scrollLeft; } |
Цитата:
|
я понимаю. вообщем мне надо задать background и на ту часть которую скрыл родитель с overflow : scroll.
как вариант решения проблемы это задать фиксированную длину блоку li включая и ту часть что скрыта. для этого я и получаю длину на которую скрыт элемент. если кто предложит более удачный вариант буду счастлив |
Если li одно строчный, то можно его содержимое обернуть в span и фон задавать уже span'у.
|
а почему именно в спан? подойдет ли div в display : inline? а то li в span как то совсем не кошерно
|
Не li в span, а span в li. Нужен просто строчный элемент внутри для фона.
|
ага. спасиб. щас попробую
|
Часовой пояс GMT +3, время: 19:48. |