Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Позиционирование через js (https://javascript.ru/forum/misc/32986-pozicionirovanie-cherez-js.html)

BelkinV 06.11.2012 16:57

Позиционирование через js
 
имеется список
ul {
  position: relative;
}
li {
  position: absolute;
}

<ul>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    ......
    <li></li>
    <li></li>
</ul>


ширина у каждого LI разная.
вообщем нужно чтоб при загрузке страницы скрипт выставил значения LEFT каждому LI чтобы они выстроились как при float, может немного не понятно выразился, вообщем у если длинна Первого LI 100, второго 120, третьего 130, четвёртого 90 и т.д, скрипт ставил им Left таким образом - у первого left:0, второго left:100 (отступ для первого пункта как бы), третий 120 (отступ для 1 и 2 пункта).

как понимаю тут всё вокруг .each крутится , только не знаю как это написать.

Severtain 06.11.2012 20:04

Все очень просто! управлять значениями можно так :
document.getElementById('NameDIV').style.left=100+ 'px';

и нужно разбить их на классы! иначе не распознаешь к какому объекту обращаться!

a_l 06.11.2012 21:12

(function() { 
  for(var i = 0, els = document.getElementsByTagName('ul')[0].getElementsByTagName('li'), l = els.length, allWidth = 0, elWidth = ''; i < l; i++) {
    els[i].style.left = allWidth + "px";
    elWidth=window.getComputedStyle(els[i],null).getPropertyValue("width");
    allWidth += parseInt(elWidth.substring(-2));   
  };
})();

Severtain, классы не дают уникальность. Тогда уж на id разбивать.


Часовой пояс GMT +3, время: 11:37.