ugrás a tartalomhoz

CSS3 div méretváltoztatás animálással

toldigabor · 2013. Dec. 13. (P), 15.16
Szeretném a weblapomon egy div méretét megváltoztatni animálással, amikor betöltődik az oldal.

div_nev.style.setProperty("-webkit-transition", "width 2s linear");
var nagyit = function(){
    div_nev.style.setProperty("width", magassag+"px");
   
}
nagyit();


Ez így működik, ha csak a szélességet adom meg, de ha emellett megadom a height-et is, akkor nem csinálja egyszerre mind a kettőt.

div_nev.style.setProperty("-webkit-transition", "width 2s linear");
div_nev.style.setProperty("-webkit-transition", "height 2s linear");
var nagyit = function(){
    div_nev.style.setProperty("width", magassag+"px");
div_nev.style.setProperty("height", szelesseg+"px");
   
}
nagyit();


Ekkor csak a magasságát változtatja, a szélesség egyből arra ugrik és az nem animálódik. Hogy lehet, hogy mind a kettőt animálja?
 
1

Jól nézd meg a kódot.

Hidvégi Gábor · 2013. Dec. 13. (P), 15.24
Jól nézd meg a kódot. Szerinted miért viselkedik így?
2

Egy sorba?

toldigabor · 2013. Dec. 13. (P), 15.40
Valahogy egy sorba kellene megadni a másik paramétert is?
3

Igen.

Hidvégi Gábor · 2013. Dec. 13. (P), 15.41
Igen.
4

Átírtam

toldigabor · 2013. Dec. 13. (P), 15.59
Átírtam így az első sort:

div_nev.style.setProperty("-webkit-transition", "width 2s linear, height 2s linear;");
De így se működik
5

Ha már CSS

Endyl · 2013. Dec. 13. (P), 16.04
Ha már CSS, akkor én a helyedben a munka nagyrészét is a CSS-re bíznám. CSS-ben írsz két osztályt és JS-ből már csak hozzá kell rendelned a megfelelő osztályt az elemhez és nem kell a style-lal körülményeskedni (plusz így lehet, hogy hamarabb észrevennéd, mi a hiba a kódoddal; de segít a dokumentáció a megfelelő szintaxis kiválasztásában).

(Amennyiben egy meghatározott böngészőre és verzióra fejlesztesz, vagy csak a példa kedvéért használtad csak a -webkit prefixes változatot (bár ez esetben a prefix nélküli szerencsésebb lett volna), tárgytalan a következő bekezdés, de az utókornak még akkor is jól jöhet.)

Remélem csak véletlenül írtad a -webkit prefixes változatot, és a tényleges kódban szerepel a prefix nélküli változat is, ugyanis a legtöbb aktuális böngészőben már nincs szükség prefix-re, illetve más gyártók böngészői meg sem értik feltétlenül a -webkit-es változatot, így kimaradnak az effektek élvezetéből.
6

Azért nem jó, hogy CSS-ben

toldigabor · 2013. Dec. 16. (H), 04.37
Azért nem jó, hogy CSS-ben írjak két osztályt és azt rendeljem hozzá JS-ből, mert a szélesség dinamikusan változik képernyő felbontástól függően.
8

Responsive Web Design

Endyl · 2013. Dec. 16. (H), 10.53
Responsive Web Design

[szerk]
De ha az új szélesség beállítását nem is szeretnéd CSS-sel megoldani, az alap transition tulajdonságokat még mindig megadhatod CSS-ben, és már akkor is egy fokkal tisztább a JS-ed, lévén csak a szélességet és a magasságot manipulálod belőle.
[/szerk]
7

Több helyen kerestem a

toldigabor · 2013. Dec. 16. (H), 05.12
Több helyen kerestem a szintaxist: olyan van, hogy CSS-ben több transition; olyan is, hogy javascript-ben egy; de olyan, hogy javascriptben több megadva, olyan példát nem találtam

div_nev.style.setProperty("-webkit-transition", "width 2s linear, height 2s linear");
var nagyit = function(){
    div_nev.style.setProperty("width", szelesseg+"px", "height", magassag+"px");
    
}

nagyit();
9

Sikerült

toldigabor · 2013. Dec. 17. (K), 12.46
A második setProperty-t kettőbe kellett volna megadnom