jquery .width(); és div tartalom float-tal
Adott egy div (slider), amihez javascript-tel adok gyermekeket egy cikluson belül, és beállítom a pozíciójukat:A css-ek:A későbbiekben szeretném elérni a slider szélességét, tehát azt hogy mekkorára nyúlik a gyermekek hozzáadása miatt. Itt minden adat amit el tudok érni, 0-át ad vissza. Ha a slidernek megadok fix értéket, akkor pedig azt kapom.
Természetesen amikor a hozzáadom a gyermekeket, akkor beállíthatnám a slider szélességét a megfelelő értékre, de gondolom, ennek automatikusan is meg kell történnie (vagy nem?), és tisztább lenne ha így lenne.
Mi miatt kapok mindig fix értéket, a valós szélességgel szemben?
■
cr=document.createElement('div');
cr.className='mybox';
$(cr).css('left',cleft);
$(cr).css('top',ctop);
slider.appendChild(cr);
.mybox{
position: absolute;
height: 100px;
width: 100px;
cursor: pointer;
}
#slider {
position: absolute;
height: 250px;
left: 0px;
top: 0px;
}
Természetesen amikor a hozzáadom a gyermekeket, akkor beállíthatnám a slider szélességét a megfelelő értékre, de gondolom, ennek automatikusan is meg kell történnie (vagy nem?), és tisztább lenne ha így lenne.
Mi miatt kapok mindig fix értéket, a valós szélességgel szemben?
Egy abszolút pozícionált
hogyan, mikor?
inline
/inline-block
rakd az elemeket, vagy pedigfloat
old.Ahh mindig megszívat a
Amit az első blokkban írtál érdekes! Én általában próbálok minél kevésbé támaszkodni a jqueryre. Van számottevő sebességbeli különbség ha erőteljesen használod vagy ha kevésbé? Nekem az jut eszembe, hogy minden css tulajdonság állítás +1 függvényhívás....
Abosolute pozíciónál kiemeli a parentből? A gyerekek left-je és top-ja mégis relatív a parent top, left tulajdonságaihoz. Valamit rosszul gondolok?
A float, és a block/inline-block azért nem tuti, hogy jó mert X darab elemet kell két sorban kiraknom (két sor tölti ki a konténer magasságát) , és utána vízszintes scroll van.
Kiemeli
Ha két sorba kell tördelni, akkor veszel két
div
-t,li
-t stb., és azokba pakold be az elemeket.A gondom az, hogy a kis
inline-block
Nah itt aztán van mit
Nem tudom, el is olvastad-e a
currentStyle
, ami ugye pedig az elem egy tulajdonsága. Azaz ha vangetComputedStyle
(W3C), akkor meghívom azt, egyébként pedig acurrentStyle
-ra támaszkodom (IE).Látom már, a lista alapú
Aztán menet közben ahogy
1. a konténer width-je a css fileban 0px;
2. a konténer (slider) szélességét a gyerekek felfűzésénél jquery segítségével beállítom akkora méretre ami elég X/2 darab gyereknek (ezt szerettem volna elkerülni egyébként :D)
Később ha lekérem a jqueryvel a width tulajdonságot, akkor 0-át mutat, tehát a cssben megadottat.
Firebug szerint a tagnál a style tulajdonságban a jquery-vel beállított érték van.
Ha simán kiíratom az elem offsetWidth tulajdonságát, akkor megkapom a jqueryvel beállított értéket.
Kicsit összezavarodtam (ismét :)), és úgy érzem a jquery set/get-je nincs összhangban.
Ezt a dokumentumból kiemelést
Ha valóban ki lenne emelve a szülőből, akkor nem így kéne viselkednie.
Kiemelés
Z-index