Pagina 1 di 2 12 UltimaUltima
Risultati da 1 a 10 di 11

Discussione: #ancora che funziona in parte!

  1. #1
    artigiano è offline Nuovo Iscritto
    Data Registrazione
    May 2008
    Messaggi
    4

    Unhappy #ancora che funziona in parte!

    Ho utilizzato un script che serve a far aprire una determinata pagina in un determinato punto, eccone una sintesi (quella che interessa il post):
    Codice:
    <script type="text/javascript" language="JavaScript">
    	    function Carica() {
            var now = new Date();
    		var hours = now.getHours();
    		var ancora = ""; altezza = "";
    		if(hours >= 6 && hours < 12){ 
    		ancora = "m"; 
    		altezza = "350px";
    		}else if(hours >= 12 && hours < 18){
    		ancora = "p"; 
    		altezza = "350px";
    		}else if(hours >= 18 && hours < 0){
    		ancora = "s"; 
    		altezza = "350px";	
            }else if(hours >= 0 && hours < 6){
    		ancora = "n"; 
    		altezza = "350px";
    		}
    Le pagine relative presentano il seguente codice
    Codice:
    <div class="ancora"><a name="m">MATTINA</a></div>
    <div id="Mattino">
    
    <div class="ancora"><a name="p">POMERIGGIO</a></div>
        <div id="Pome">
    
    <div class="ancora"><a name="s">SERA</a></div>
          <div id="Sera">
    
    <div class="ancora"><a name="n">NOTTE</a></div>
          <div id="Notte">
    che è appunto il punto che dovrebbe apparire all'apertura della pagina.

    i CSS relativi sono
    Codice:
    }
    #Mattino{
    	width: 650px;
    	margin-right: auto;
    	margin-left: auto;
    }
    #Pome{
    	width: 650px;
    	margin-right: auto;
    	margin-left: auto;
    }
    #Sera{
    	width: 650px;
    	margin-right: auto;
    	margin-left: auto;
    }
    #Notte{
    	width: 650px;
    	margin-right: auto;
    	margin-left: auto;
    }
    
    .ancora{
    	font-style: italic;
    	height: 20px;
    	margin-bottom: 10px;
    	width: 650px;
    	margin-right: auto;
    	margin-left: auto;
    	text-align: center;
    	margin-top: 10px;
    }
    Qual'è il problema?

    Che al mattino e al pomeriggio tutto funziona regolarmente, a partire dalle 18, quando dovrebbe scattare la sera, in poi si visualizza solo il mattino e in un formato di frame ridotto rispetto al funzionante.
    Qualcuno ne capisce l'arcano?

  2. #2
    L'avatar di PoLe
    PoLe è offline MRW Moderator
    Data Registrazione
    Jun 2005
    Località
    .: Venezia :.
    Messaggi
    2,211
    Ciao e benvenuto tra noi

    L'arcano sta nella condizione della Sera:
    else if(hours >= 18 && hours < 0)

    La condizione infatti non si verifica mai perchè un numero non può essere maggiore di 18 e nello stesso tempo minore di 0.


    Il problema sta tutto li


    Consulenza Organizzativa, Software Gestionali e Realizzazione Siti Web.
    http://www.bzconsulting.it

  3. #3
    artigiano è offline Nuovo Iscritto
    Data Registrazione
    May 2008
    Messaggi
    4
    quinsi se lo 0 (mezzanotte) diventa 24...........giusto?

  4. #4
    L'avatar di PoLe
    PoLe è offline MRW Moderator
    Data Registrazione
    Jun 2005
    Località
    .: Venezia :.
    Messaggi
    2,211
    No

    Devi fare:
    else if(hours >= 18 && hours <= 23)



    Consulenza Organizzativa, Software Gestionali e Realizzazione Siti Web.
    http://www.bzconsulting.it

  5. #5
    artigiano è offline Nuovo Iscritto
    Data Registrazione
    May 2008
    Messaggi
    4
    Ah! mannaggia! ma la mezzanotte come si conta?

  6. #6
    L'avatar di lukeonweb
    lukeonweb è offline Forumista DOC
    Data Registrazione
    Mar 2003
    Località
    Napoli
    Messaggi
    5,200
    Prova con:

    hours == 0

    Oppure nel blocco "else".
    Luca Ruggiero
    Resp. didattico www.mrwcorsi.it

  7. #7
    L'avatar di PoLe
    PoLe è offline MRW Moderator
    Data Registrazione
    Jun 2005
    Località
    .: Venezia :.
    Messaggi
    2,211
    Citazione Originariamente Scritto da artigiano Visualizza Messaggio
    Ah! mannaggia! ma la mezzanotte come si conta?
    Mi spieghi che ti importa della mezzanotte?

    Il controllo che ti ho detto:
    else if(hours >= 18 && hours <= 23)

    farà si che la fase "Sera" sia valida fino alle 23.59, poi dalle ore 0.00 automaticamente inizierà la "Notte".

    Fai una prova e vedrai


    Consulenza Organizzativa, Software Gestionali e Realizzazione Siti Web.
    http://www.bzconsulting.it

  8. #8
    artigiano è offline Nuovo Iscritto
    Data Registrazione
    May 2008
    Messaggi
    4
    Codice:
    if(hours >= 6 && hours < 12){ 
    		ancora = "m"; 
    		altezza = "350px";
    		}else if(hours >= 12 && hours < 18){
    		ancora = "p"; 
    		altezza = "350px";
    		}else if(hours >= 18 && hours < 23){
    		ancora = "s"; 
    		altezza = "350px";	
            }else if(hours >= 0 && hours < 6){
    		ancora = "n"; 
    		altezza = "350px";
    		}

  9. #9
    L'avatar di borgo italia
    borgo italia è offline Super Moderatore
    Data Registrazione
    Feb 2008
    Località
    PR
    Messaggi
    11,238
    come al solito scusate l'intromissione

    else if(hours >= 18 && hours <= 23)

    farà si che la fase "Sera" sia valida fino alle 23.59, poi dalle ore 0.00 automaticamente inizierà la "Notte".
    non vorrei dire una czz, ma secondo me <=23 alle 23.00001 passa a notte, secondo me dovrebbe essere

    hours>=18 and hours <24 per cui 23 59' 59.998" minore, mentre 24 0' 0" maggiore

  10. #10
    L'avatar di PoLe
    PoLe è offline MRW Moderator
    Data Registrazione
    Jun 2005
    Località
    .: Venezia :.
    Messaggi
    2,211
    Citazione Originariamente Scritto da borgo italia Visualizza Messaggio
    ...non vorrei dire una czz, ma secondo me <=23 alle 23.00001 passa a notte, secondo me dovrebbe essere

    hours>=18 and hours <24 per cui 23 59' 59.998" minore, mentre 24 0' 0" maggiore
    No ragazzi, a questo punto non avete capito il concetto di base della faccenda

    La condizione:
    else if(hours >= 18 && hours <= 23)
    fa un controllo sul valore di hours.
    Bene, la variabile hours non contiene l'ora intera, come per esempio le 23 59' 59.998, ma contiene il valore dell'ora, ovvero ha come valore 23.
    Questo lo si deduce da questa riga:
    var hours = now.getHours();

    Quindi, che siano le 23.01, o le 23.59, hours ha sempre come valore 23.

    Ecco spiegato perchè è giusta la condizione che ho postato ieri, che fa si che la condizione si verifichi fino a tutta la durata delle ore 23. Alle ore 0.00, scatterà automaticamente la condizione:
    if(hours >= 0 && hours < 6)

    Chiaro adesso?


    Consulenza Organizzativa, Software Gestionali e Realizzazione Siti Web.
    http://www.bzconsulting.it

Pagina 1 di 2 12 UltimaUltima

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •