Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Un sito "particolare"

  1. #1

    Un sito "particolare"

    Sto creando il mio sito personale, che mostra una serie di tasti rotondi che fanno da menu di navigazione dalla home.

    Quello cui mi sono ritrovato a pensare è stato: sarà possibile fare in modo che queste icone circolari, data una serie di posizioni possibili, vengano piazzate a caso tra queste?

    Ovviamente, non vorrei che si ripetessero. Quindi quel che chiedo è: è possibile fare in modo che, in una griglia facciamo di 9x9, circa 8 icone vengano messe a ogni reload in posizioni diverse nella griglia, facendo in modo che ogni icona appaia al massimo una volta?

    E' fattibile in html o ci vogliono altri linguaggi, per fare una cosa simile? C'è bsiogno di un database?

    Grazie a tutti,

    WSI

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Per farlo con HTML puro, devi farlo lato server.

    Se invece vuoi farlo con JS, la cosa e` possibile.

    Serve un database, inteso come raggruppamento di dati, ma devi comunaue passarlo al client, quindi non appesantisci di molto la trasmissione.

    I tuoi link e le tue immagini devi inserirle in una matrice a 2 dimensioni fatta cosi`:

    var matr = new Array();
    matr[0] = ('link1', 'imm1');
    matr[1] = ('link2', 'imm2');
    matr[2] = ('link3', 'imm3');
    ...

    dove i link sono i pezzi da inserire nei tag <a href="..."> e le varie imm da inserire nei vari [img]...[/img]

    Nota che se c'e` una regola nei vari nomi, il vettore si puo` anche costruire via JS.

    Poi nn ho capito che algoritmo vuoi usare per la randomizzazione.
    Quanti sono i link?
    Perche` parli di 8 link da spostare?


    A questo punto si tratta solo di trovare il modo di scambiare l'ordine della matrice (indice principale): per farlo occorre che chiarisci il punto precedente.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    L'8 era un numero, appunto, a caso.

    Il menu principale, la home per intenderci, ha 5 bottoni. un'altra pagina, che è quella dei link, ne avrebbe un numero variabile, in crescita, con l'aumentare dei link.

    Un utente che entri nel sito troverebbe le 5 icone della hp sparse casualmente all'interno di, non so, circa 10, 15 possibili celle di una tabella. Sempre che sia possibile, ovviamente.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Tutto e` possibile (... quasi). Resta da vedere quanto costa (in termini di programmazione).

    Comunque nel tuo caso e` possibile.

    Allora ci vuole anche un altro vettore che dice alle celle della tabella cosa devono contenere (se niente o uno dei link/immagini).
    codice:
    var tabe = new Array(N); // N e` il numero di campi della tabella
    for(var i=0; i<tabe.length; i++) { // inizializzazione a vuota
    tabe[i] = "&amp;nbsp;";
    }
    
    var matr = new Array(N); // stessa lunghezza
    matr[0] = ('link1', 'imm1');
    matr[1] = ('link2', 'imm2');
    matr[2] = ('link3', 'imm3');
    ...fino al numero di link -1 (supponiamo 5)
    matr[5] = ("","");
    matr[6] = ("","");
    ... fino a N-1
    
    // ora occorre riempire il vettore tabe 
    // con i dati contenuti nella matrice matr, presi in ordine random.
    
      for(var i=0; i<tabe.length; i++) {
        tabe[i] = "";
        var ind = Math.floor(Math.random()*matr.length); // n random
        if(matr[ind][0] == "") {  // cella vuota
          tabe[i] = "&amp;nbsp;";
        } else {                  // riempimento cella
          tabe[i] = "<a href='" + matr[ind][0] + "'>";
          tabe[i] += "[img]" + matr[ind][1] + "[/img]</a>";
        }
        
        matr.splice(ind,1);     // toglie elemento da matr
      }  
    
    // a questopunto tabe e` piena, mentre matr e` vuota (length==0)
    Poi al posto della codice HTML da inserire nella tabella (quindi nel body):

    <td ...>
    <script type="text/javascript">document.write(tabe[XX]);</script>
    </td>

    Al posto di XX devi mettere il numero progressivo (a partire da 0).

    Non ho testato nulla, per cui ci possono essere errori
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Grande! grazie mille, lo proverò quanto prima!

    Piuttosto... ehm... cos'è un vettore?

    WSI

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    In fisica e` una proprieta` di alcune grandezze che hanno direzione e verso (oltre che intensita`)

    in matematica e` un punto nello spazio N-dimensionale, ovvero la distanza di un punto dall'origine

    in informatica e` una grandezza che si esprime mediante un insieme di numeri

    in parole povere puoi vederlo come matrice ad una sola dimensione, oppure come un insieme di misure che vengono indirizzate da uno stesso nome.

    Si puo` dimostrare che tutte queste definizioni sono equivalenti, dato un contesto.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Straordinario, questo forum non solo è un covo di genii, ma anche pieno di persone gentili!

    Grazie!!
    :metallica

  8. #8
    Uhmm...consentitemi 1 intervento/parere e/o opinione.

    Un sito che al refresh cambia la disposizione dei link può essere carino la prima volta...ma dalla seconda in poi rallenta la ricerca dei naviganti...e da qui diventerebbe sempre meno carino e sempre più fastidioso.
    Un pò con le vecchie versioni del Winzip, che se non stavi attento a dove ti piazzava il tasto "I Agree" t'apriva non so cosa e ti spazientiva (sopratutto quando speravi di fare in fretta).

    Magari potrebbe mostrarsi vitale (relativamente parlando) un tasto che abilita/disabilita l'effetto !!!

    La più grande forza a disposizione dell'umanità è la non violenza (Ghandi).
    (15/06/2003 - 16 points, 17 rembounds and 1 standing ovation x Admiral David Robinson ... San Antonio Spurs~ 2003/5 NBA champions)

  9. #9
    In effetti la cosa ha senso...

    Piuttosto, per le immagini ci sono degli swap image attivati (con DW).

    Se io come "imm" metto solo il nome dell'immagine (p.es "icon_camera_76x76" senza indicare il tipo di immagine) e nella tabella metto "onmouseover bla bla "imm1"_over.gif" o qualcosa del genere, può funzionare?

    WSI

  10. #10
    Se ho capito bene cosa intendi:
    a tabella fatta (refresh effettuato) senza il nome (ed il percorso) completo nella matrice non apparirà nemmeno 1 immagine.
    La più grande forza a disposizione dell'umanità è la non violenza (Ghandi).
    (15/06/2003 - 16 points, 17 rembounds and 1 standing ovation x Admiral David Robinson ... San Antonio Spurs~ 2003/5 NBA champions)

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.