Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    99

    banner javascript non del tutto random

    come si fa ad avere un banner "truccato" o meglio asseganre percentuali di probabilità diversa a immagini divese?
    o meglio: voglio ad esempio che la prima compaia più spesso delle altre e la seconda meno spesso della prima ma più delle altre ecc!!
    aiuto

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Puoi dare un peso ai tuoi link.

    Se ti basta che uno sia doppio o triplo degli altri, basta che lo ripeti due o tre volte, altrimenti occorre modficare la routine del random, inserendo un parametro in piu` (che potrebbe essere un peso). Un po' come la media pesata.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    99
    avevo pensato anch'io al metodo di ripetizione delle immagini che voglio vedere di più solo che se inizio ad avere molti banner quello che voglio si veda 1 volta su 2 deve essere ripetuto una marea di volte!
    volevo sapere qualcosa di più sul secondo metodo!
    xè stavo utilizzando uno script che non usa il metodo random ma in base al secondo in cui viene fatto l'aggiorna pagina
    come funziona più o meno il secondo metodo?

    grazie mille

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ci sono vari modi per dereminare un numero random.
    Uno e` usare Math.random()
    Un altro e` usare il secondo (o il millisecondo) dell'orologio interno

    I banner li hai in un vettore o matrice?
    Cosa contiene tale vettore/matrice?
    Si puo` aggiungere una colonna? (per il peso)

    Nota che per modifcare uno script e` opportuno avere l'orginale, altrimenti rischi di non riuscire poi ad implementare
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    99
    allora il codice che uso era questo:
    codice:
    	this[0] = 4;
    this[1] = "<a href=\"http://www.link.it\"><img src=\"img\\ciotole_2.gif\" width=600 height=50 border=1 alt=\"Primo banner\"></a>";
    this[2] = "<a href=\"http://www.link.it\"><img src=\"img\\ciotole_3.gif\" width=600 height=50 border=1 alt=\"Secondo banner\"></a>";
    this[3] = "<a href=\"http://www.link.it\"><img src=\"img\\ciotole_4.gif\" width=600 height=50 border=1 alt=\"Terzo banner\"></a>";
    this[4] = "<a href=\"http://www.link.it\"><img src=\"img\\ciotole_5.gif\" width=600 height=50 border=1 alt=\"Quarto banner\"></a>";
    }
    function popUpBanner(list)
    {
    	var today = new Date();
    	var choiceInstance = new choices();
    	var Banner = choiceInstance[(today.getSeconds() % choiceInstance[0]) + 1];
    }
    function grabBanner()
    {
    	var today = new Date();
    	var choiceInstance = new choices();
    	var Banner = choiceInstance[(today.getSeconds() % choiceInstance[0]) + 1];
    	return Banner;
    }
    document.writeln(grabBanner());
    abbastanza semplice ma da quello che ho capito devo cr5earne uno con il Math.random

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    99
    aspetat ne ho trovato uno forse migliore con il Math.random()

    codice:
    function banner() {
    };
    
    banner = new banner();
    number = 0;
    
    
    
    banner[number++] = "<a href=\"http://www.link.it\"><img src=\"img\\ciotole_2.gif\" width=600 height=50 border=1 alt=\"Primo banner\"></a>";
    banner[number++] = "<a href=\"http://www.link.it\"><img src=\"img\\ciotole_3.gif\" width=600 height=50 border=1 alt=\"Secondo banner\"></a>";
    banner[number++] = "<a href=\"http://www.link.it\"><img src=\"img\\ciotole_4.gif\" width=600 height=50 border=1 alt=\"Terzo banner\"></a>";
    banner[number++] = "<a href=\"http://www.link.it\"><img src=\"img\\ciotole_5.gif\" width=600 height=50 border=1 alt=\"Quarto banner\"></a>";
    
    
    
    increment = Math.floor(Math.random() * number);
    
    document.write(banner[increment]);{

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Eccomi con le modifiche:

    codice:
    <style type="text/css">
    .bann { width: 600; height:50; border-width:1; }
    </style>
    
    <script type="text/javascript">
    var banner = new Array();
    
    banner[banner.length] = ["[img]img\\ciotole_2.gif[/img]", 10];
    banner[banner.length] = ["[img]img\\ciotole_3.gif[/img]", 2];
    ...
    
    var number=0;
    for(var i=0; i<banner.length; i++) {
      number += banner[i][1];
    }
    var increment = Math.floor(Math.random() * number);
    for(var i=0; i<banner.length; i++) {
      increment -= banner[i][1];
      if(increment <= 0) {
        increment = i;
        break;
      }
    }
    
    document.write(banner[increment][0]);
    </script>
    Nota che la variabile banner e` una matrice bidimensionale (il numero nel secondo posto e` il peso che vuoi dare al banner).
    Nel mio codice la variabile increment assume due funzioni diverse nel corso dello svolgimento dello script.

    Non ho provato lo script (per cui potrebbero esserci errori di sintassi.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.