Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di Grinder
    Registrato dal
    Mar 2003
    Messaggi
    1,374

    Scroll layer per firefox

    Ho questo script per un layer che rimane sempre in basso a destra della pagina:
    codice:
    var larghezza = "";
      var altezza = "";
         function Inizializza() {
            if (document.all) {
               larghezza = TextScroll.offsetWidth;
               altezza = TextScroll.offsetHeight;
               setInterval("TextScroll_IE()", 1);
               TextScroll.style.visibility = "Visible";
            }
            else if (document.layers) {
               larghezza = document.TextScroll.document.width;
               altezza = document.TextScroll.document.height;
               setInterval("TextScroll_NN()", 1);
               document.TextScroll.visibility = "Show";
            }
         }
      function TextScroll_IE() {
         TextScroll.style.pixelLeft = document.body.scrollLeft + document.body.clientWidth - larghezza - 10;
         TextScroll.style.pixelTop = document.body.scrollTop + document.body.clientHeight - altezza - 10;
      }
      function TextScroll_NN() {
         document.TextScroll.left = pageXOffset + window.innerWidth - larghezza - 10;
         document.TextScroll.top = pageYOffset + window.innerHeight - altezza - 10;
      }
      window.onload = Inizializza;
    però su Firefox non funziona! Cosa manca?

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    I valori ammessi per visibility sono:
    visible
    hidden
    collapse

    Quindi non "Show", ma neppure "Visible"
    (CSS e` case-sensitive)
    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 L'avatar di Grinder
    Registrato dal
    Mar 2003
    Messaggi
    1,374
    Ho cambiato "Show" in "visible", ma non si vede lo stesso

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ho riguardato il tuo script. In effetti non prende in considerazione i browser recenti.

    Per i browser recenti potresti scrivere (forse):

    larghezza = document.getElementById('TextScroll').style.width;
    altezza = document.getElementById('TextScroll').style.height ;
    setInterval(ttsW3(), 1);
    document.getElementById('TextScroll').style.visibi lity = "visible";
    }

    function ttsW3() {
    document.getElementById('TextScroll').style.left = pageXOffset + window.innerWidth - larghezza - 10;
    document.getElementById('TextScroll').style.top = pageYOffset + window.innerHeight - altezza - 10;
    }
    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 L'avatar di Grinder
    Registrato dal
    Mar 2003
    Messaggi
    1,374
    Con quale condizione però richiamo la funzione? Per IE c'è "if (document.all)", per Netscape "if (document.all)"..e per Firefox?

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    if(document.getElementById)

    ma a questa condizione risponde anche IE dal 5.5 in poi.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Utente di HTML.it L'avatar di Grinder
    Registrato dal
    Mar 2003
    Messaggi
    1,374
    Continua a non apparire niente
    codice:
    function Inizializza() {
            if (document.all) {
               larghezza = TextScroll.offsetWidth;
               altezza = TextScroll.offsetHeight;
               setInterval("TextScroll_IE()", 1);
               TextScroll.style.visibility = "visible";
            }
            else if (document.layers) {
               larghezza = document.TextScroll.document.width;
               altezza = document.TextScroll.document.height;
               setInterval("TextScroll_NN()", 1);
               document.TextScroll.visibility = "show";
            }
    		else if(document.getElementById) {
    		   larghezza = document.getElementById('TextScroll').style.width;
               altezza = document.getElementById('TextScroll').style.height;
               setInterval("ttsW3()", 1);
               document.getElementById('TextScroll').style.visibility = "visible";
            }
    
         }
      function TextScroll_IE() {
         TextScroll.style.pixelLeft = document.body.scrollLeft + document.body.clientWidth - larghezza - 10;
         TextScroll.style.pixelTop = document.body.scrollTop + document.body.clientHeight - altezza - 10;
      }
      function TextScroll_NN() {
         document.TextScroll.left = pageXOffset + window.innerWidth - larghezza - 10;
         document.TextScroll.top = pageYOffset + window.innerHeight - altezza - 10;
      }
      function ttsW3() {
         document.getElementById('TextScroll').style.left = pageXOffset + window.innerWidth - larghezza - 10;
         document.getElementById('TextScroll').style.top = pageYOffset + window.innerHeight - altezza - 10;
      }

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ma le variabili utilizzate nella funzione sono definite?

    E poi con un tempo di ripetizione di 1 millisec, rischi di intasare il browser (troppi interrupt).

    Mettici comunque degli alert per viusalizzare dove arriva il controllo e cosa contengono le variabili:

    else if(document.getElementById) {
    larghezza = document.getElementById('TextScroll').style.width;
    altezza = document.getElementById('TextScroll').style.height ;
    setInterval("ttsW3()", 1000); // per le prime prove, poi diventera` 10
    document.getElementById('TextScroll').style.visibi lity = "visible";
    }

    function ttsW3() {
    alert("pXO="+pageXOffset+" lar="+larghezza);
    document.getElementById('TextScroll').style.left = pageXOffset + window.innerWidth - larghezza - 10;
    document.getElementById('TextScroll').style.top = pageYOffset + window.innerHeight - altezza - 10;
    }
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    Utente di HTML.it L'avatar di Grinder
    Registrato dal
    Mar 2003
    Messaggi
    1,374
    L'alert mi da "pXO=0 lar=120px"...che vuol dire?

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Significa che il valore di pageXOffset e` 0, che il valroe di larghezza e` 120 px.

    E chiaramente un valore non intero non puo` essere usato in una somma.

    Vedi questa modifica:
    function ttsW3() {
    alert("pXO="+pageXOffset+" lar="+larghezza+" iW="+window.innerWidth);
    document.getElementById('TextScroll').style.left = pageXOffset + window.innerWidth - parseInt(larghezza,10) - 10;
    document.getElementById('TextScroll').style.top = pageYOffset + window.innerHeight - parseInt(altezza,10) - 10;
    }
    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.