Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

Foto's steeds sneller naar volgende

Hend
7 antwoorden
  • Wat is er mis met dit script

    in de head van mn pagina dit:
    [code:1:5d2de419f4]
    <SCRIPT type="text/javascript">
    var Numbers = new Array();
    Numbers.length = 20;
    var j=0;

    function getNumbers(){
    for (i=1;i<21;i++){
    Numbers[i] = parseInt((53 * Math.random()) + 1)
    }
    showFoto();
    }

    function showFoto(){
    j++;
    if (j==10){
    j=0;
    getNumbers();
    }
    var img1 = document.getElementById('1');
    var img2 = document.getElementById('2');
    if (Numbers[j] < 10){
    img1.src = "pictures/scania00" + Numbers[j] + ".jpg";
    } else {
    img1.src = "pictures/scania0" + Numbers[j] + ".jpg";
    }
    if (Numbers[j+10] < 10){
    img2.src = "pictures/scania00" + Numbers[j+10] + ".jpg";
    } else {
    img2.src = "pictures/scania0" + Numbers[j+10] + ".jpg";
    }
    pauze();
    }

    function pauze(){
    setTimeout("showFoto()",500)
    }

    </SCRIPT>
    [/code:1:5d2de419f4]

    en dit is de body:
    [code:1:5d2de419f4]
    <BODY onLoad="getNumbers()">
    <IMG ID="1">
    <IMG ID="2">

    </BODY>
    [/code:1:5d2de419f4]

    Elke x na dit stukje
    if (j==10){
    j=0;
    getNumbers();
    }
    gaan de fotos weer iets sneller voorbij, als ze eenmaal heel snel gaan, gaan ze steeds weer iets langzamer voorbij komen
  • Misschien is het ook handig als je vertelt wat je exact wil bereiken met het script.
  • Ik wil willekeurig 2 foto's laten zien, en dan automatisch naar de volgende, na 10 keer 2 foto's moet er opnieuw willekeurig 20 fotos uitgekozen worden en dan weer laten zien.
  • Niemand???
  • [quote:afd869ec23="Hend"]Ik wil willekeurig 2 foto's laten zien, en dan automatisch naar de volgende, na 10 keer 2 foto's moet er opnieuw willekeurig 20 fotos uitgekozen worden en dan weer laten zien.[/quote:afd869ec23]
    Dus eigenlijk wil je continue - met een korte interval - de 2 foto's laten wisselen door een random gekozen andere foto? [i:afd869ec23](ik snap namelijk niet het nut van de 20 random en vervolgens weer 20 random; als ik mis zit, dan zeg het maar)[/i:afd869ec23]

    Ik heb niet goed naar je script gekeken, maar ik vermoed dat het probleem is dat je teveel timeouts zet. Als deze een beetje 'out of sync' gaan lopen, dan kan je de indruk krijgen dat de foto's steeds sneller gaan bewegen (vergelijk een propellor op film die steeds langzamer lijkt te bewegen, lijkt stil te staan en vervolgens de andere kant op gaat).

    Ik zal eens kijken of ik tijd heb om iets in elkaar te zetten.

    p.s. Je topic is een beetje in de vergetelheid geraakt / ondergesneeuwd. Beetje onaardig van ons :o ;)
  • Het probleem is dat ik maar 1 keer timeout zet, dus dat te vaak kan eigenlijk niet.
    (die random wilde ik eerst na 20 keer doen, maar dat had geen nut nee, ik laat ze nu allemaal doen, maar daar is het niet mee opgelost dus..)
  • Nou, als je goed naar je code kijkt, dan zie je dat je de functie showFoto() vanuit getNumbers() aanroept en ook omgekeerd. Je creeert zo dus een 'viceuze cirkel' van functies die elkaar blijven aanroepen. Dat veroorzaakt je probleem (en dat wat ik in mijn eerdere post schetste).

    Ik heb hieronder een stukje code geplaatst wat op een andere wijze ervoor zorgt dat de twee images random wijzigen in een andere foto. Misschien kan je er wat mee.
    [code:1:fa7de06707]
    <script type="text/javascript">
    window.onload = function () { shuffleFotos(); }

    function shuffleFotos()
    {
    setInterval('showFoto()', 500);
    }

    function showFoto()
    {
    var img1 = document.getElementById('1');
    var img2 = document.getElementById('2');

    var n1 = parseInt((20 * Math.random()) + 1, 10);
    var n2 = parseInt((20 * Math.random()) + 1, 10);

    img1.src = "pictures/scania0" + (n1 < 10 ? "0" : "") + n1 + ".jpg";
    img2.src = "pictures/scania0" + (n2 < 10 ? "0" : "") + n2 + ".jpg";
    }
    </script>
    <body>
    <img id="1">
    <img id="2">
    </body>

    [/code:1:fa7de06707]

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.