Tutorijali.Net forum

Full Version: Povecanje vrijednosti varijable u funkciji
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Evo koda image slidera koji radim:
Code:
<script type="text/javascript">
$(document).ready(function(){
slajduj();
});

function slajduj() {

var i = 1;
var broj_slika = $("#slajd img").size();
var sirina = $("#slajd img").width();
var visina = $("#slajd img").height();
var sirine = broj_slika * sirina;
var slike = $("#slajd").children();

$("#omot").css("height", visina);
$("#omot").css("width", sirina);
$("#slajd").css("height", visina);
$("#slajd").css("width", sirine);

$("#" + i).animate({marginLeft: -sirina*i});
setTimeout("slajduj()", 1000);

}

</script>

Potrebno mi je da se sa svakim ponavljanjem funkcije vrijednost od i poveca za 1. Probao sam sa i++ ali ne radi iz prostog razloga sto funkcija svaki put kad se pokrene postavlja za pocetnu vrijednost i=1.
Pokusavao sam staviti i da bude globalna varijabla ali ne funkcionise opet. Help please =/
To ti je zato što stavljaš var i = 1 unutar funkcije

Izvan funkcije stavi
Code:
var i = 1;

i onda u funkciji
Code:
i++;
Ili sam ja lud ili mi ovo prije nije radilo, ali iz nekog razloga sada radi He he
E vidi sada kod:
Code:
<script type="text/javascript">
$(document).ready(function(){
slajduj();
});

var i = 0;
function slajduj() {

var broj_slika = $("#slajd img").size();
var sirina = $("#slajd img").width();
var visina = $("#slajd img").height();
var sirine = broj_slika * sirina;
var slike = $("#slajd").children();

$("#omot").css("height", visina);
$("#omot").css("width", sirina);
$("#slajd").css("height", visina);
$("#slajd").css("width", sirine);

if(i > 3) i = 0;
else {
$("#" + i).animate({marginLeft: -sirina*i});
i++;
}
setTimeout("slajduj()", 1000);

}
</script>

Izvrti on slajdove ali ne ponavlja ih, zato sam postavio if petlju da vrati vrijednost od i na 0, ali ne radi :/
Ovo ti postavlja samo prvi slajd na marginu 0 a ostalo onda nevrati na u pocetnu poziciju mozda da pokusas ovako :
Code:
<script type="text/javascript">
            $(document).ready(function(){
                slajduj();
            });

            var i = 0;
            function slajduj() {
            var broj_slika = $("#slajd img").size();
            var sirina = $("#slajd img").width();
            var visina = $("#slajd img").height();
            var sirine = broj_slika * sirina;
            var slike = $("#slajd").children();

            $("#omot").css("height", visina);
            $("#omot").css("width", sirina);
            $("#slajd").css("height", visina);
            $("#slajd").css("width", sirine);

            if(i > 3){
                $("#slajd img").animate({marginLeft: 0});
                i=0;
            } else {
                $("#" + i).animate({marginLeft: -sirina*i});
                i++;
            }
            setTimeout("slajduj()", 1000);
            }
        </script>
E hvala puno, sada radi, medjutim kada se zavrsi slajdovanje prikaze prazan prostor, sta mislis kako bih mogao srediti marginu tako da ne prikazuje prazan prostor nego odmah da vrati na pocetak?
Sorry neznam ti strukturu css-a tako da ti nemogu nista reci mislim da morat ces restrukturirati css da bi ovako radilo nisam siguran kako to sve izgleda.
Reference URL's