Autor | Zpráva | ||
---|---|---|---|
Amunak Profil |
Zdravím, mám na webu pozadí které se opakuje každých dvacet pixelů. Vypadalo by to lépe, kdyby pozadí končilo tam, kde končí opakování. Zkoušel jsem to vyřešit takovýmto skriptem:
el_poz = document.getElementById('pozadi'); el_zve = document.getElementById('zvetsovaci'); rep = 20; el_zve.style.height = (Math.ceil(el_poz.offsetHeight/rep)*rep - el_poz.offsetHeight) + 'px'; Když si navíc vypíšu Offset, Scroll nebo Client Height toho pozadí, má podezřele malé rozměry - ukazuje asi o 200px méně, než to ve skutečnosti má. Řešení je překvapivě jednoduché. Stačilo to navázat na onload místo předpokládání domReady na konci dokumentu. Nedošlo mi, že donačtení obrázků způsobí změnu výšky toho elementu. |
||
peta Profil |
Margin, padding, border muze mit vliv na rozmer. Ja bych to napsal jako:
h = el_poz.offsetHeight; el_zve.style.height = Math.ceil( h / rep ) * rep + 'px'; Nevim, ceho chces docilit odectenim cele vysky... Math.ceil(h/rep)*rep - h) h = 1030 rep = 50 Math.ceil(h/rep) = 20 20*rep = 1000 1000 - 1030 = -30 Stejny vysledek bys dostal ze vzorce -h%rep |
||
Amunak Profil |
#3 · Zasláno: 5. 11. 2012, 12:28:20
peta:
ani jeden z elementů nemá ani margin, ani padding, ani border. Tady by mě navíc zajímal maximálně padding, který by pozadí protáhl. Nějak nechápu ten výpočet dole, moc nedává smysl. Nechtěl bys to zapsat normálně v javascriptu, ayb bylo poznat, co kam přiřazuješ a jak s tím pracuješ? Odečtením celé výšky docílím toho, že získám výšku, kterou je potřeba přidat (tedy výšku na kterou je třeba roztáhnout ten průhledný element). Kdybych dostal -30, je mi to k ničemu, potřebuji první vyšší hodnotu, ne nižší. Pravda ale je, že zbytek po dělení by asi nějak šel použít. Tak jak to mám mi to každopádně funguje a nevím, jestli do toho chci vrtat. |
||
panther Profil |
#4 · Zasláno: 5. 11. 2012, 12:32:56
Amunak:
nevím, jestli jsem tě zcela pochopil, ale mělo by stačit nastavit výšku takto. Nebo se pletu? el_zve.style.height = Math.ceil(el_poz.offsetHeight % rep) |
||
Amunak Profil |
#5 · Zasláno: 5. 11. 2012, 14:22:30
panther:
U tohohle vzorce je ještě třeba odečíst to od rep (protože potřebuji vlastně doplněk ke zbytku, ne zbytek po dělení). Je to ale elegantnější, takže to použiji, díky. |
||
Časová prodleva: 11 let
|
0