(X)HTML, JavaScript, DHTML, XML, CSS Client scripting tehnologije, Dynamic HTML, Cascading Stylesheets, XML i standardi |
|
Alati teme | Način prikaza |
31. 08. 2008. | #1 |
novi član
Na probnom radu
Datum učlanjenja: 16.07.2008
Poruke: 17
Hvala: 1
0 "Hvala" u 0 poruka
|
jQuery hover
Pozdrav!
Treba mi pomoc oko hover event-a u jQuery-ju. Ovo je kod: Kôd:
$('div.kontejner').hover( function() {$('divkontejner div').fadeIn(); }, function() {$('div.kontejner div').fadeOut();} ); Kako da izbjegnem ovaj efekat pamcenja preleta misem, tj da dok traju efekti ne hvata nove event-e? Hvala |
31. 08. 2008. | #2 |
Goran Pilipović
Sir Write-a-Lot
|
Nisam "majstor", poceo sam tek pre par nedelja da koristim jquery, ali evo:
$('div.kontejner').hover( function() {$('div', this).fadeIn(); }, function() {$('div', this).fadeOut();} );
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
31. 08. 2008. | #3 |
novi član
Na probnom radu
Datum učlanjenja: 16.07.2008
Poruke: 17
Hvala: 1
0 "Hvala" u 0 poruka
|
Hvala na brzom odgovoru ali ne ponasa se nista drugacije.
Dakle, ako neko manicno pomjera misa po stranici i preleti vise puta preko diva kontejner onda se odradi taj broj puta efekat animacije nad unutrasnjim divovima. Ja bih da to uradi samo jednom, tj da ne hvata nove event-e (mouseover) dok god se ne zavrse animacije. |
31. 08. 2008. | #4 |
Goran Pilipović
Sir Write-a-Lot
|
aha, ... ja sam mislio da ti je problem sto svi iskoce od jednom. Pa onda probaj sa .one()
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
31. 08. 2008. | #5 |
novi član
Na probnom radu
Datum učlanjenja: 16.07.2008
Poruke: 17
Hvala: 1
0 "Hvala" u 0 poruka
|
Ali onda mi posle prve reakcije nece vise reagovati na prelazak misa, zar ne?
Ja zelim da iskljucim reakcije samo dok traju animacije. Ovo ponasanje izaziva trajanje animacija, ako fadeIn/Out() zamjenim sa show/hide() (koje su trenutne) vise nema tog pamcenja prelazaka misa (kada misem brzo preletim vise puta uzastopce). Pa je odgovor vjerovatno u queue() i dequeue() ali moji pokusaji njihovog koristenja nisu dali odgovarajuce rezultate. Upravo sam otkrio da sam jquery.com pati od istog problema. Uvjerite se sami: na pocetnoj stranici vise puta brzo preletite misem preko "Lightweight", "CSS3 Compliant" ili "Cross-browser" pa cete vidjeti efekat pamcenja koji mi smeta. |
31. 08. 2008. | #6 |
profesionalac
Qualified
Datum učlanjenja: 06.09.2007
Lokacija: Zrenjanin
Poruke: 109
Hvala: 21
11 "Hvala" u 11 poruka
|
$('div.kontejner').hover(
function() {if (!$(this)._hover) { $(this)._hover=true; $('div', this).fadeIn(); } }, function() { if ($(this)._hover) { $(this)._hover=false; $('div', this).fadeOut(); } } ); |
31. 08. 2008. | #7 |
Goran Pilipović
Sir Write-a-Lot
|
Eto, tek sada pocinjem da razumem sta te muci
Jedini nacin je da pratis da li je event "jos u toku" odnosno da dodas jos jednu callback funkciju za fadein & out, fadeOut('fast', function() { } ) Ta callback funkcija se izvrsava jada se zavrsi i fade animacija, ... sada bih morao da probam, ali prvo sto mi pada napamet je da na mouseover unbind-ujes event, pa u tom callback da ga ponovo bind-ujes... Mozda ces morati da umesto .hover() koristis mouseover() i mouseout(), ne znam kako ce hover da se ponasa sa tim (un)bind-ovima. Ili da imas jednu varijablu u kojoj drzis da li je over ili out... imas i $(el).data();... mozes i tu...
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
31. 08. 2008. | #8 |
Goran Pilipović
Sir Write-a-Lot
|
Evo sad si me "naterao" da probam
Kôd:
$('div.kontejner').hover ( function() { if (!$(this).data('on')) { $(this).data('on',1); $('div', this).fadeIn('fast', function() { $(this).parent().removeData('on'); }); } }, function() { $('div', this).fadeOut(); } );
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
"Hvala" bluesman za poruku: |
31. 08. 2008. | #9 |
Goran Pilipović
Sir Write-a-Lot
|
Evo ti i u obliku jquery funkcije
Kôd:
$.fn.hoverable = function() { var t = this; $(this).each (function (i) { $(this).parent().css('cursor', 'pointer').hover ( function() { if (!$(this).data('on')) { $(this).data('on',1); $(t, this).eq(i).fadeIn('fast', function() { $(this).parent().removeData('on'); }); } }, function() { $(t, this).eq(i).fadeOut(); } ); } ); return $(this); }; Kôd:
$('.hover').hoverable() Kôd:
$('.hover').hoverable().css('color', 'red'); HTML kôd:
<div> jedan tekst <div class="hover" style="display:none; position:absolute; background:green;">ovo ide na tekst 1</div> </div> <span> drugi tekst <div class="hover" style="display:none; position:absolute; background:yellow;">A ovo je na tekst 2</div> </span>
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
31. 08. 2008. | #10 |
novi član
Na probnom radu
Datum učlanjenja: 16.07.2008
Poruke: 17
Hvala: 1
0 "Hvala" u 0 poruka
|
Svaka cast bluesman, vidim da se dobro snalazis sa jQuery-jem
Radi onako kao sto si rekao, ponovi jos jedan put, sto je mnogo bolje od 20 Pokusacu naci nacin da izbacim i to dodatno 1 ponavljanje kasnije, zasad je i ovako dobro.. |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
jQuery hover | Ivan | Sva početnička pitanja | 3 | 23. 03. 2010. 15:24 |
[css menu] List, hover | Ivan | Sva početnička pitanja | 6 | 27. 01. 2008. 00:30 |
hover na <p> (IE) | [nq] | (X)HTML, JavaScript, DHTML, XML, CSS | 7 | 15. 05. 2007. 23:28 |
jQuery i Ext | Ilija Studen | (X)HTML, JavaScript, DHTML, XML, CSS | 7 | 02. 03. 2007. 12:25 |
Hover efekat na "area" elementu? | Milos Vukotic | (X)HTML, JavaScript, DHTML, XML, CSS | 9 | 06. 04. 2006. 01:56 |