Visualizzazione dei risultati da 1 a 3 su 3

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2018
    Messaggi
    2

    change background color - disabilitare script in vista mobile

    Salve ragazzi . . .
    ho il seguente script per cambiare il colore di sfondo del mio sito web ogni 60 sec.

    codice:
    <scripttype="text/javascript">
    //
    // Description: Randomly change background color every 60 seconds
    //
    // NewcWare 1997
    // Author: Scott Newcomer 3/1997
    // Email: nuke@bright.net
    //
    function setbackground()
    {
    window.setTimeout("setbackground()",60000);// 60000 milliseconds delay
    
    var index =Math.round(Math.random()*4);
    
    varColorValue="FFFFFF";// default color - white (index = 0)
    
    if(index ==1)
    ColorValue="DEC7FF";//lt violet
    if(index ==2)
    ColorValue="CAD5FF";//lt blue
    if(index ==3)
    ColorValue="E4FFB1";//lt green
    if(index ==4)
    ColorValue="DDDDDD";//lt grey
    
    document.getElementsByTagName("body")[0].style.backgroundColor ="#"+ColorValue;
    
    }
    </script><bodyonload="setbackground();">


    Volevo che lo script non funzionasse se si visita il mio sito da smartphone e ho modificato la stringa

    codice:
    document.getElementsByTagName("body")[0].style.backgroundColor ="#"+ColorValue;


    in

    codice:
    if(!(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|OperaMini/i.test(navigator.userAgent))){
    document.getElementsByTagName("body")[0].style.backgroundColor ="#"+ColorValue;


    ma niente, non funziona . . .

    Qualcuno saprebbe aiutarmi?

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,654
    Ciao, puoi semplificare il codice in questo modo
    codice:
    <!doctype html>
    <html>
    <head>
    <script>
    const varColorValue="FFFFFF";// default color - white (index = 0)
    const colors = [varColorValue, "DEC7FF", "CAD5FF", "E4FFB1", "DDDDDD" ]; 
    
    function setbackground()
    {
    
    setInterval(function(){
        let index = Math.round(Math.random()*4);
        document.body.style.backgroundColor = "#" + colors[index];
    },2000);// 60000 milliseconds delay
    
    
    }
    
    
    window.onload = function(){
    console.log('start')
    if((/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|OperaMini/i.test(navigator.userAgent))){
        console.log('mobile')
        return;
    }
    setbackground();
    }
    </script>
    </head>
    
    
    
    
    <body>
    
    
    content
    </body>
    </html>
    Metti i colori in un array di modo che l'indice dell'array corrisponde all'index generato(se mai sposterai i valori per cambiare sequenza).
    setInterval() se vuoi un ciclo continuo altrimenti eseguirari una volta sola dopo 60 secondi.
    Se mobile non fai nulla, altrimenti richiami la funzione.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2018
    Messaggi
    2
    Grazie Mille!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.