Tutorijali.Net forum
Povecanje vrijednosti varijable u funkciji - Printable Version

+- Tutorijali.Net forum (http://www.tutorijali.net/forum)
+-- Forum: Izrada weba (/forumdisplay.php?fid=5)
+--- Forum: Javascript (/forumdisplay.php?fid=7)
+--- Thread: Povecanje vrijednosti varijable u funkciji (/showthread.php?tid=1834)



Povecanje vrijednosti varijable u funkciji - stefo - 17-11-2011 03:32 PM

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 =/


RE: Povecanje vrijednosti varijable u funkciji - Gogy - 17-11-2011 05:03 PM

To ti je zato što stavljaš var i = 1 unutar funkcije

Izvan funkcije stavi
Code:
var i = 1;

i onda u funkciji
Code:
i++;



RE: Povecanje vrijednosti varijable u funkciji - stefo - 17-11-2011 08:04 PM

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 :/


RE: Povecanje vrijednosti varijable u funkciji - danielvast - 17-11-2011 10:49 PM

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>



RE: Povecanje vrijednosti varijable u funkciji - stefo - 18-11-2011 04:07 PM

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?


RE: Povecanje vrijednosti varijable u funkciji - danielvast - 18-11-2011 05:34 PM

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.