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

    scroll di layers con Mozzilla

    Salve a tutti, questo script permette di mantener fisso un layer nonostante lo scorrimento della barra verticale del browser.
    Con IE funziona, ma con Mozzilla no:


    codice:
    </script>
    function inizializza(){
    	if (document.all) {
       		setInterval("TextScroll_IE()", 1);
    	}
    	else if (document.layers) {
      		altezza = document.mioLay.document.height;
       		setInterval("TextScroll_NN()", 1);
    	}
    	else{
    		alert("ok1");
    		altezza = document.mioLay.height;
       		setInterval("TextScroll_NN()", 1);
    	}
    }
     function TextScroll_IE() {
     	if (document.documentElement && document.documentElement.scrollTop){
    		altezza = document.documentElement.scrollTop;
    	}else if (document.body){
    		altezza = document.body.scrollTop
    	}
      	mioLay.style.pixelTop = altezza;
     }
     function TextScroll_NN() {
    	document.mioLay.top = pageYOffset + window.innerHeight;
    	alert("pageYoff= "+pageYOffset+" innerH= "+window.innerHeight);
    }
    </script>
    nella pagina:

    codice:
    <body onLoad="inizializza()">
    <div id="mioLay" style="position:absolute; left:100px">
    Grazie, ciao.

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    nel tuo caso specifico, lo script non serve a mozilla perche' questo browser supporta il position:fixed

  3. #3
    thnx.
    Quindi, se io facessi:

    <div id="mioLay" style="position:fixed; left:100px">

    con mozzilla mi da il layer sempre alla stessa altezza.

    allora, dimmi se è corretto scrivere in questo modo:

    codice:
    </script>
    function inizializza(){
    // IE
    	if (document.all) {
       		setInterval("TextScroll_IE()", 1);
    	}
    // NN	
            else if (document.layers) {
      		altezza = document.mioLay.document.height;
       		setInterval("TextScroll_NN()", 1);
    	}
    // MOZZILLA	
            else{
    		document.getElementById("mioLay").style.position = "fixed"
    	}
    }
    
     ...
    
    </script>
    ammettendo che la mia idea sia valida, rimane un problema: il ragionamento sta nel fatto che se il browser non è IE e se non è NN dovrebbe essere Mozzilla, ma a mio parere non è un controllo tanto efficiente, visto che si va per esclusione.


    grazie, ciao.

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    non e' solo mozilla, ma tutti i browser aderenti agli standard , ad accettare il position:fixed
    se via script devi settare un differente posizionamento dovrebbe essere fatto per i browser non conformi agli standard

    se non interessa troppo passare il validatore credo che specificare due position ti risparmi il problema alla radice

    mioLay {postion:absolute;position:fixed;}

    cosi' chi non capisce fixed lo considera absolute
    ciao

  5. #5
    ti ringrazio xinod per la tua disponibilità, ho provato con IE6 ma non mi funziona, mi mette il layer in cima alla pagina, allora ho provato come ti avevo spiegato prima, e mi funziona, nn capisco il motivo eppure dovrebbe essere come hai detto tu!

    Grazie, ciao.

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.