Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Al verificarsi di una condizione, uscire da un if e passare al successivo; testo a scorrimento da file txt

    Buongiorno!
    Ho adattato un codice che mi è stato segnalato su questo forum per mostrare determinate immagini differenti in base all'ora ed al giorno della settimana in una pagina web. Il che funziona senza problemi.

    codice:
        <script type="text/javascript" language="JavaScript">
    
                        var now = new Date();
                        var day = now.getDay();
                        var hours = now.getHours();
                        var d = new Date();
                          var psj=0;
    
    
                          //Nuova settimana didattica
                          if (day == 5 && hours >= 13 || day == 6 || day == 0 || day == 1 && hours < 17){
                            adImages = new Array("ProgSett/5.jpg","ProgSett/1.jpg","ProgSett/2.jpg","ProgSett/3.jpg","ProgSett/4.jpg")
                            thisAd = 0
                            imgCt = adImages.length
                            
                            function rotate() {
                              if (document.images) {
                                thisAd++
                                if (thisAd == imgCt) {
                                  thisAd = 0
                                }
                                document.rotationImage.src=adImages[thisAd]
                                setTimeout("rotate()", 5000)
                              }
                            }
                             }
    
    
                            //Dalle 17:00 del Lunedì alle 16:59 del Martedì
                          if (day == 1 && hours >= 17 || day == 2 && hours < 17){
                            adImages = new Array("ProgSett/5.jpg","ProgSett/2.jpg","ProgSett/3.jpg","ProgSett/4.jpg")
                            thisAd = 0
                            imgCt = adImages.length
    
    
                            function rotate() {
                              if (document.images) {
                                thisAd++
                                if (thisAd == imgCt) {
                                  thisAd = 0
                                }
                                document.rotationImage.src=adImages[thisAd]
                                setTimeout("rotate()", 5000)
                              }
                            }
                             }
    
    
                             //Dalle 17:00 del Martedì alle 16:59 del Mercoledì
                             if (day == 2 && hours >= 17 || day == 3 && hours < 17){
                               adImages = new Array("ProgSett/5.jpg","ProgSett/3.jpg","ProgSett/4.jpg")
                               thisAd = 0
                               imgCt = adImages.length
    
    
                               function rotate() {
                                 if (document.images) {
                                   thisAd++
                                   if (thisAd == imgCt) {
                                     thisAd = 0
                                   }
                                   document.rotationImage.src=adImages[thisAd]
                                   setTimeout("rotate()", 5000)
                                 }
                               }
                                }
    
    
                             //Dalle 17:00 del Mercoledì alle 16:59 del Giovedì
                             if (day == 3 && hours >= 17 || day == 4 && hours < 17){
                               adImages = new Array("ProgSett/5.jpg","ProgSett/4.jpg")
                               thisAd = 0
                               imgCt = adImages.length
    
    
                               function rotate() {
                                 if (document.images) {
                                   thisAd++
                                   if (thisAd == imgCt) {
                                     thisAd = 0
                                   }
                                   document.rotationImage.src=adImages[thisAd]
                                   setTimeout("rotate()", 5000)
                                 }
                               }
                                }
    
    
                             //Dalle 17:00 del Giovedì alle 12:59 del Venerdì
                             if (day == 4 && hours >= 17 || day == 5 && hours < 13){
                               adImages = new Array("ProgSett/5.jpg")
                               thisAd = 0
                               imgCt = adImages.length
    
    
                               function rotate() {
                                 if (document.images) {
                                   thisAd++
                                   if (thisAd == imgCt) {
                                     thisAd = 0
                                   }
                                   document.rotationImage.src=adImages[thisAd]
                                   setTimeout("rotate()", 5000)
                                 }
                               }
                              }
    
    
                              //Dalle 13:00 del  Venerdì
                              if (day == 5 && hours >= 13){
                                adImages = new Array("ProgSett/6.jpg")
                                thisAd = 0
                                imgCt = adImages.length
    
    
                                function rotate() {
                                  if (document.images) {
                                    thisAd++
                                    if (thisAd == imgCt) {
                                      thisAd = 0
                                    }
                                    document.rotationImage.src=adImages[thisAd]
                                    setTimeout("rotate()", 5000)
                                  }
                                }
                               }
                               
                      </script>
    Quello che vorrei fare è, una volta individuato il giorno e l'ora ed essere entrato in un "if", vorrei mettere una condizione alla fine del ciclo delle immagini da mostrare, prima di iniziare a mostrarle da capo, che confronti nuovamente l'ora e la data in modo che, se si rientrasse nelle condizioni dell' "if" successivo si possa passare a quello.
    La pagina che sto programmando deve essere pubblicata su dei monitor e, una volta avviata, viene aggiornata una volta a settimana.
    Avrei anche l'esigenza non non refreshare l'intera pagina perché sotto avrei un testo a scorrimento che non dovrebbero essere aggiornato.


    A proposito di testo a scorrimento, ho utilizzato il codice "crawler.js". Avrei l'esigenza di, invece di inserire il testo nel codice, di far pescare il testo da visualizzare da un file.txt... Ho cercato molto nel web ma non ho trovato nulla che fa al caso mio.

    codice:
      <div class="marquee" id="mycrawler">                    TESTO SCORREVOLE
                      </div>
    
    
                      <script type="text/javascript">
                      marqueeInit({
                          uniqueid: 'mycrawler',
                          style: {
                          'font-family':'Arial',
                              'padding': '10px',
                              'width': '100%',
                          'height': '20px',
                          'font-size': '30px',
                          'color': '#FFF',
                              'background': '#4181C0',
                          'background-size': 'cover',
                          },
                          inc: 20, //speed - pixel increment for each iteration of this marquee's movement
                          mouse: 'cursor driven', //mouseover behavior ('pause' 'cursor driven' or false)
                          moveatleast: 2,
                          neutral: 150,
                          persist: true,
                          savedirection: true
                      });
                      </script>
    Ringrazio chiunque sia disposto ad aiutarmi!

    Ps. Magari sono cose semplici, ma ho visto per la prima volta un codice js l'altro ieri

  2. #2
    Avrei un'altra domanda. C'è la possibilità di far durare diversamente le immagini? Poniamo il caso che le l'array sia composto da 5 immagini: posso far durare la prima 10 secondi e le altre 5?

  3. #3
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,262
    Ciao pasQuilino,
    benvenuto sul forum. Ti invito, qualora non lo avessi già fatto, a prendere visione del regolamento.

    Detto questo per il tuo secondo quesito: non lo puoi fare con lo script attuale. Infatti la funzione setInterval viene eseguita ogni x secondi a prescindere dalla foto.

    Infine ti consiglio di aprire una discussione diversa per argomento (ad esempio il testo scorrevole era tranquillamente un'altra discussione)

    Se hai dei dubbi chiedi pure.
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  4. #4
    Quote Originariamente inviata da ciro78 Visualizza il messaggio
    Ciao pasQuilino,
    Infine ti consiglio di aprire una discussione diversa per argomento (ad esempio il testo scorrevole era tranquillamente un'altra discussione)
    Chiedo scusa ma avevo capito che dovevo spostarla di sezione. Lì comunque ho risolto il problema e pensavo di averlo aperto qui.

    Per il mio secondo problema non fa nulla, era una "finezza" superflua.
    Comunque ho cercato di risolvere con un do while ma penso di essere incappato in un loop infinito.

    codice:
    <script type="text/javascript" language="JavaScript">
    
                        var now = new Date();
                        var day = now.getDay();
                        var hours = now.getHours();
                        var d = new Date();
      	                var psj=0;
    
    
                          //Nuova settimana didattica
                          do{
                            adImages = new Array("ProgSett/5.jpg","ProgSett/1.jpg","ProgSett/2.jpg","ProgSett/3.jpg","ProgSett/4.jpg")
                            thisAd = 0
                            imgCt = adImages.length
    
    
                            function rotate() {
                              if (document.images) {
                                thisAd++
                                document.rotationImage.src=adImages[thisAd]
                                setTimeout("rotate()", 5000)
                              }
                            }
                          } while (day == 5 && hours >= 13 || day == 6 || day == 0 || day == 1 && hours < 17)
    
    
      	                  //Dalle 17:00 del Lunedì alle 16:59 del Martedì
                          do {
                            adImages = new Array("ProgSett/5.jpg","ProgSett/2.jpg","ProgSett/3.jpg","ProgSett/4.jpg")
                            thisAd = 0
                            imgCt = adImages.length
    
    
                            function rotate() {
                              if (document.images) {
                                thisAd++
                                document.rotationImage.src=adImages[thisAd]
                                setTimeout("rotate()", 5000)
                              }
                            }
      	                   } while (day == 1 && hours >= 17 || day == 2 && hours < 17)
    
    
                             //Dalle 17:00 del Martedì alle 16:59 del Mercoledì
                            do {
                               adImages = new Array("ProgSett/5.jpg","ProgSett/3.jpg","ProgSett/4.jpg")
                               thisAd = 0
                               imgCt = adImages.length
    
    
                               function rotate() {
                                 if (document.images) {
                                   thisAd++
                                   document.rotationImage.src=adImages[thisAd]
                                   setTimeout("rotate()", 5000)
                                 }
                               }
         	                   } while (day == 2 && hours >= 17 || day == 3 && hours < 17)
    
    
                             //Dalle 17:00 del Mercoledì alle 16:59 del Giovedì
                             do {
                               adImages = new Array("ProgSett/5.jpg","ProgSett/4.jpg")
                               thisAd = 0
                               imgCt = adImages.length
    
    
                               function rotate() {
                                 if (document.images) {
                                   thisAd++
                                   document.rotationImage.src=adImages[thisAd]
                                   setTimeout("rotate()", 5000)
                                 }
                               }
         	                   } while (day == 3 && hours >= 17 || day == 4 && hours < 17)
    
    
                             //Dalle 17:00 del Giovedì alle 12:59 del Venerdì
                             do {
                               adImages = new Array("ProgSett/5.jpg")
                               thisAd = 0
                               imgCt = adImages.length
    
    
                               function rotate() {
                                 if (document.images) {
                                   thisAd++
                                   document.rotationImage.src=adImages[thisAd]
                                   setTimeout("rotate()", 5000)
                                 }
                               }
                              } while (day == 4 && hours >= 17 || day == 5 && hours < 13)
    
    
                              //Dalle 13:00 del  Venerdì
                              do {
                                adImages = new Array("ProgSett/6.jpg")
                                thisAd = 0
                                imgCt = adImages.length
    
    
                                function rotate() {
                                  if (document.images) {
                                    thisAd++
                                    document.rotationImage.src=adImages[thisAd]
                                    setTimeout("rotate()", 5000)
                                  }
                                }
                               } while (day == 5 && hours >= 13)
                      </script>

  5. #5
    Cerco disperatamente aiuto. Qualcuno mi sa dire il perché non funziona?
    codice:
                  <script type="text/javascript" language="JavaScript">
    
                    function primary(){
    
    
                        var now = new Date();
                        var day = now.getDay();
                        var hours = now.getHours();
                        var d = new Date();
      	                var psj=0;
    
    
                          //Nuova settimana didattica
                          if (day == 5 && hours >= 13 || day == 6 || day == 0 || day == 1 && hours < 17){
                            funcion one(){
                            adImages = new Array("ProgSett/5.jpg","ProgSett/1.jpg","ProgSett/2.jpg","ProgSett/3.jpg","ProgSett/4.jpg")
                            thisAd = 0
                            imgCt = adImages.length
    
    
                            function rotate() {
                              if (document.images) {
                                thisAd++
                                if (thisAd == imgCt) {
                                  funcion primary();
                                }
                                document.rotationImage.src=adImages[thisAd]
                                setTimeout("rotate()", 5000)
                              }
                            }
      	                   }
                         }
    
    
      	                  //Dalle 17:00 del Lunedì alle 16:59 del Martedì
                          if (day == 1 && hours >= 17 || day == 2 && hours < 17){
                            function two(){
                              adImages = new Array("ProgSett/5.jpg","ProgSett/2.jpg","ProgSett/3.jpg","ProgSett/4.jpg")
                              thisAd = 0
                              imgCt = adImages.length
    
    
                              function rotate() {
                                if (document.images) {
                                  thisAd++
                                  if (thisAd == imgCt) {
                                    funcion primary();
                                  }
                                  document.rotationImage.src=adImages[thisAd]
                                  setTimeout("rotate()", 5000)
                                }
                              }
      	                     }
      	                   }
                  </script>
    ho cercato di creare una due funzioni in una in modo tale da richiamarle ad una determinata condizione (ovvero che siano state mostrate tutte le foto) ma rimane bloccata solo su una immagine: in pratica non funziona!

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,035
    Nessuno ti aiuta perché non è molto chiaro cosa vuoi fare, descrivi come dovrebbe essere lo script senza postare codice e come dovrebbe funzionare.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Grazie per il consiglio. Provo a riproporre il mio progetto ed anche il mio quesito.

    Devo mostrare su degli schermi una - inizialmente - semplice pagina web composta da una intestazione con il logo ed il nome della scuola, il corpo formato da delle immagini che scorrono ogni tot secondi ed un piè di pagina con un testo scorrevole.

    Le immagini sono 5 (lunedì, martedì, mercoledì, giovedì e venerdì) + 1 (Settimana didattica in caricamento).
    In base al giorno della settimana e dell'ora, devono "ruotare" solo alcune (o tutte) di queste immagini.

    In questo modo avrò:
    - dalle 13 del primo venerdì fino alle 17 del lunedì le immagini 1, 2, 3, 4 e 5;
    - dalle 17 del lunedì alle 17 del martedì le immagini 2, 3, 4 e 5;
    - dalle 17 del martedì alle 17 del mercoledì le immagini 3, 4 e 5;
    - dalle 17 del mercoledì alle 17 del giovedì le immagini 4 e 5;
    - dalle 17 del giovedì alle alle 13 del venerdì l'immagine 5;
    - dalle 17 del secondo venerdì in poi (ovvero fino a quando non viene aggiornata la pagina perché sostituite le immagini da mostrare) l'immagine 6.

    Allo stato attuale funziona tutto senza intoppi, con degli if e la funzione rotate. L'unica problema è che una volta individuato il giorno, il programma entra in quell'if e non esce più. Dovrei, al verificarsi della condizione dell'if successivo che entrasse in quest'ultimo, in modo che ad esempio, alle 17 del lunedì nn facesse più vedere le immagini 1, 2, 3, 4 e 5 ma solo la 2, 3, 4 e 5.

    In altre parole, qualcuno saprebbe propormi un modo con il quale, all'avverarsi di una condizione, il codice esca da un se ed entri in un altro?

    Avevo pensato di risolvere il problema inserendo una secondo funzione nella funzione rotate, ma a quanto pare non funziona.

    Spero che ora sia più chiaro e sarei infinitamente grato se qualcuno potesse aiutarmi.

  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,035
    distingui primo venerdi con secondo venerdì cosa indenti lo script deve riconoscere quanti venerdi ci sono nel mese?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  9. #9
    La settimana didattica viene caricata una volta a settimana, di norma il venerdì dopo le 12. Caricata, la pagina web verrebbe aggiornata manualmente.
    Prendendo dal giorno di caricamento (primo venerdì). Il venerdì della settimana dopo il caricamento (secondo venerdì), fino a quando non viene caricata la nuova settimana didattica, voglio mostrare una immagine con scritto "settimana didattica in pubblicazione". Se così non fosse, visto che non sono state aggiornate le immagini, verrebbe riproposta la "vecchia settimana didattica" e se non si stesse attenti al giorno indicato sulle immagini chi guarda i monitor si potrebbe confondere.
    Questo è il senso dell'ultima condizione (o ultimo "if") nella mia idea di passare da un if all'altro.

    Altrimenti dovrei inserire un codice (ammesso che esista) per far cancellare le immagini che non servono e mettere una ulteriore condizione per ogni "if" per far controllare che ci siano tutte le immagini previste da visualizzare.
    Così la vedo forse ancora più complicata.

Tag per questa discussione

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