Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako koristiti animate u Jquery?

[es] :: Javascript i AJAX :: Kako koristiti animate u Jquery?

[ Pregleda: 1402 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Belgarion
Novi Sad

Član broj: 245135
Poruke: 71
*.static.sbb.rs.



+2 Profil

icon Kako koristiti animate u Jquery?05.07.2013. u 09:25 - pre 131 meseci
JQuery animation()

Imam neku srelicu koja konstantno skakuce gore-dole?

Code:

    function animateIt() {
        $("#selectedLevelSliderID").animate({ marginTop: "-=5px" }, 400);
        $("#selectedLevelSliderID").animate({ marginTop: "+=5px" }, 400);
        animateIt();
    }


I ovo radi.
Ali ja zelim da na osnovu paramtra neke druge funkcije promenim kordinate te strelice i da ona skakuce na nekom drugom mestu.
E kada to pokusam onda mi se zapuca i ne radi.

Jel ima neko ideju u cemu je problem?

Hvala unapred.
 
Odgovor na temu

HeYoo

Član broj: 72595
Poruke: 491



+1017 Profil

icon Re: Kako koristiti animate u Jquery?05.07.2013. u 10:55 - pre 131 meseci
Zasto koristis rekurziju za ponavljanje animacije?

Koristi setInterval pa probaj da iskombinujes s tim sta si hteo vec..
Code:
 setInterval( function() {
        $("#selectedLevelSliderID").animate({ marginTop: "-=5px" }, 400);
        $("#selectedLevelSliderID").animate({ marginTop: "+=5px" }, 400);
        },1200);
   
 
Odgovor na temu

Belgarion
Novi Sad

Član broj: 245135
Poruke: 71
*.static.sbb.rs.



+2 Profil

icon Re: Kako koristiti animate u Jquery?05.07.2013. u 11:31 - pre 131 meseci
Zato što još uvek učim JQuery, pa mi je to bilo nekako logično.
Hvala na pomoći.
Ali kolko razumem interval je 1200. Šta ako ja hoću da animacija radi beskonačno?
 
Odgovor na temu

deZio
Inđija

Član broj: 150608
Poruke: 345
*.dynamic.isp.telekom.rs.



+38 Profil

icon Re: Kako koristiti animate u Jquery?05.07.2013. u 11:44 - pre 131 meseci
setInterval i radi beskonačno, tj. izvršava se na svake 1.2 sekunde. Ako hoćeš da se izvršava na manji period onda smanjiš taj interval.. Takođe možeš napisati i ovako nešto:

Code:

var interval = 1200;
var margin_top_1 = "-=5px";
var margin_top_2 = "+=5px";
var margin_top_1_interval = 400;
var margin_top_2_interval = 400;

var moja_animacija = setInterval( function() {
         $("#selectedLevelSliderID").animate({ marginTop: margin_top_1 }, margin_top_1_interval );
         $("#selectedLevelSliderID").animate({ marginTop: margin_top_2 }, margin_top_2_interval );
         }, interval );

/* ovde ili u okviru neke druge f-je možeš promeniti vrednosti promenljive za margine, i onda samim tim i f-ja za animaciju radi sa novim vrednostima za marginu */
margin_top_1 = "-=15px";
margin_top_2 = "+=15px";

function neka_fja() {
    margin_top_1 = "65px";
    margin_top_2 = "45px";
}

neka_fja();

/* ako hoćeš da prekineš setInterval, koristi ovaj kod: */
window.clearInterval(moja_animacija);
 
Odgovor na temu

HeYoo

Član broj: 72595
Poruke: 491



+1017 Profil

icon Re: Kako koristiti animate u Jquery?05.07.2013. u 11:45 - pre 131 meseci
Svakih 1200ms funkcija se izvrsi. Probaj
 
Odgovor na temu

Belgarion
Novi Sad

Član broj: 245135
Poruke: 71
*.static.sbb.rs.



+2 Profil

icon Re: Kako koristiti animate u Jquery?05.07.2013. u 13:29 - pre 131 meseci
Rešio sam. Hvala obojici.
Finkcija izgleda ovako:

Code:

    function animateIt() {
        var selectedLevelPicture=$("#selectedLevelSliderID");
        selectedLevelPicture.css('margin-top',0+'px');
        setInterval( function() {
            selectedLevelPicture.animate({ marginTop: "-=5px" }, 400).animate({ marginTop: "+=5px" }, 400);
        },800);
    }


Morao sam da dodam liniju koda koja svaki put resetuje margin-top na nulu.
Zato što ako prekinem animaciju pa ponovo pokrenem onda ona krene od one vrednosti gde je stala, što je problem jer treba da krene ispočetka.
 
Odgovor na temu

[es] :: Javascript i AJAX :: Kako koristiti animate u Jquery?

[ Pregleda: 1402 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.