Kezdőoldal » Számítástechnika » Weblapkészítés » Hogyan kell ilyen előugró...

Hogyan kell ilyen előugró sávot programozni?

Figyelt kérdés

Ezen az oldalon van egy menü. Ha a bal oldali sáv fölé viszed az egeret, akkor előugrik egy kis animációval.

Itt tudjátok megnézni: [link]


2011. márc. 30. 02:40
 1/8 anonim ***** válasza:

Valami ilyesmi az elv:


1) megcsinálod azt a beúszó szürke dobozt HTML-ben


2) eltolod css-el balra -annyi pixellel, amilyen széles a dobozod (-annyi, tehát negatív értéket adj meg + position: absolute;)


3) javascriptben van egy eseménykezelő, amit úgy állítottak be, hogy ha a bal oldal látható sáv fölé viszed az egeret, akkor a nem látható (balra eltolt) sávot eltolja jobbra X pixellel ( left: -100px; -> left: 0px;)


ennyi

2011. márc. 30. 04:02
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:
100%

Az előző hozzászóló megoldásával az a legnagyobb probléma, hogy az ő megoldásával az eredmény nem animáció lesz.

Annyi nem elég, hogy pl. left:-100px; helyett onmouseoverre left:0px; az elem css tulajdonsága, mivel így semmi animációt nem fogsz látni.

Ehhez készíteni kell egy függvényt, ami onmouseoverre indul, és növekményes cilussal kell mondjuk, - ha már az előző válaszoló példájánál maradunk - , megoldani ez elem eltolását, úgy hogy elindítod -100-tól 0-ig, úgy, hogy a ciklusváltozó értékét eggyel növeled minden egyes lefutáskor.

onmouseoutra pedig meghívsz egy másik function()-t, ami a az előző function() éppen aktuális ciklusváltozójától indul és -100-ig csökken az értéke.

Ráadásul még késleltetést is kell használni /setTimeout()/, hogy animációként lásd az elem beúszását.

2011. márc. 30. 09:03
Hasznos számodra ez a válasz?
 3/8 A kérdező kommentje:

találtam hozzá egy plugint, csak ezzel 2 baj van. a chrome és az opera nem támogatja, és a beállításai szerint csak fentre meg lentre helyezhető nekem meg balra kellene. ha valaki a .js fájlt át tudná nekem írni hogy jó legyen akkor én is sokat tanulnék belőle mert én mindenhol átírtam a bottom-ot left-re, de nem az lett az eredmény amire vártam.

itt az oldal. ingyenesen letölthető:

[link]

2011. márc. 30. 11:25
 4/8 anonim ***** válasza:
100%

Szerintem ez default jquery toggle funkcióval csont nélkül megoldható.


[link]

2011. márc. 30. 17:47
Hasznos számodra ez a válasz?
 5/8 anonim ***** válasza:

<html>

<head>

<title>jquery menü</title>

<script src=" [link]

<style>

#menu {

position: absolute;

top: 0px;

left: -150px;

height: 100%;

width: 200px;

background-color:blue;

}

</style>

</head>

<body>

<div id="menu">aaa</div>

<script>

$('#menu').mouseover(function() {

$('#menu').animate({

left: 0

}, 1000, function() {

// Animation complete.

});

});


$('#menu').mouseout(function() {

$('#menu').animate({

left: -150

}, 1000, function() {

// Animation complete.

});

});

</script>

</body>

</html>


A menüt akárhogy formázhatod, csak a láthatóságért kék. Az időtartam 1000, ami azt jelenti, hogy 1 mp-ig tart. És kérlek írd át valid html-be :D

2011. márc. 30. 23:33
Hasznos számodra ez a válasz?
 6/8 A kérdező kommentje:
Köszi. Ezzel a kóddal teljes a siker. :D
2011. márc. 31. 00:19
 7/8 A kérdező kommentje:
Még annyi lenne a gondom, hogy ha menüpontokat szeretnék tenni az előugró sávra akkor elkezd megállás nélkül megjelenni meg eltűnni. Ez mitől lehet?
2011. márc. 31. 00:59
 8/8 anonim ***** válasza:

A .mouseout -ot cseréld ki .mouseleave -re,

a .mouseover-t pedig .mouseenter -re!

2011. márc. 31. 02:11
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!