Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Imitare position:fixed

  1. #1

    Imitare position:fixed

    Ciao a tutti!

    Ho realizzato una pagina che contiene un div all'interno del quale è presente un menu.
    Siccome la pagina è molto lunga mi piacerebbe che il menu fosse sempre presente sul lato sinistro. Ottengo questo effetto con Mozilla semplicemente impostando la proprietà css position a fixed. Purtroppo questo non funziona con IE.

    Esiste un codice per ottenere lo stesso effetto in tutti e due i browser?
    Ho letto diversi esempi al riguardi ma tutti molto complicati (e poco standard, in genere). Magari salta fuori qualcosa di più semplice.

    Grazie dell'attenzione

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    codice:
    <!--[if IE]>
    <script type="text/javascript">
    var fromTop=100;
    window.onload=function(){
    	document.getElementById('fixed').style.position='absolute';
    	window.onresize=window.onscroll=function(){
    		document.getElementById('fixed').style.top=document.documentElement.scrollTop+fromTop+'px';
    	}
    }
    </script>
    <![endif]-->
    il livello da mantenere fisso ha id="fixed" e si trova a top:100px;
    via css lo setti a position:fixed; per tutti gli altri browser

    il commento condizionale interessa solo IE
    (nota che se il documento non ha doctype .documentElement diventa .body)

    ciao

  3. #3
    Funziona!!! Grazie 1000!

    Solo una curiosità: ma se volessi inserire questo codice in un file esterno javascript come posso copiare il commento condizionale? O lo devo porre prima del tag script di richiamo al file?

    Grazie ancora!

  4. #4
    <!--[if IE]>
    <script type="text/javascript" src="iefix.js"></script>
    <![endif]-->

  5. #5
    Grazie!
    Quindi mi pare di capire che sia comunque necessario creare due file, uno con js standard e uno con js per IE (o cose particolari per ie).

  6. #6
    Credo di si poichè con il condizionale solo IE richiama le funzioni del file esterno, mentre per tutte le altre funzioni compatibili con piu browser devi utilizzare un'altro file.

    Ciao

  7. #7
    magari usa una funzione che a seconda del browser fa cose diverse ... tipo questa che ho appena messo in devpro
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  8. #8
    E' vero, si tratta di un file molto piccolo, ma così facendo fai eseguire del codice del tutto inutile anche agli altri browser...

    Poi non capisco una cosa
    codice:
    !/\bopera\b/i.test(navigator.userAgent)
    Opera supporta position:fixed

    Forse ti riferisci a una vecchia versione, in questo caso mi sa che dovresti controllare la versione in uso.



    In ogni caso se uno vuole un pò sporcarsi le mani c'è anche una soluzione css: http://divinentd.com/experiments/emu...ion-fixed.html

    Oppure c'è la mia preferita, ovvero quella di convincere amici e parenti a non usare più IE e sperare che questi facciano la stessa cosa col resto del mondo.

  9. #9
    Oppure c'è la mia preferita, ovvero quella di convincere amici e parenti a non usare più IE e sperare che questi facciano la stessa cosa col resto del mondo.
    Sarebbe davvero tutto più facile così

  10. #10
    Originariamente inviato da Mega69
    Opera supporta position:fixed
    è per questo che c'è un ! davanti ... se contiene msie ma NON è opera, usa la versione per IE

    Gli altri non fanno cose inutili, ma fanno la stessa cosa, una funzione per tutti i browsers, questo è, di solito, JavaScript, quando lo si vuole rendere riutilizzabile e portabile

    Inoltre ho anche aggiunto la unfix() per tornare alla normalità, se non si vuole eliminare il nodo del tutto
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

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.