Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2007
    residenza
    Trieste
    Messaggi
    828

    fixed positioning solo su alcune div

    Ho sempre dei dubbi sul positioning, ed eccomi di fronte ad un nuovo problema.
    Nel realizzare un sito horizontal scrolling, vorrei che il menu (ora posizionato in fixed) non venga mostrato sulla prima tab, ma solo sulle successive (http://www.jsarah.it). Ho provato varie combinazioni relative/absolute ma non trovo il sistema. Qual'è la strada giusta?

  2. #2
    codice:
    <script>
    function barramenu()
    {
    var n = str.search(document.url);
    if(n == -1)
    {
        
    }
    }
    </script>
    e metti '<a href="#one" onClick="barramenu();">' al posto di <a href="#one"> e dentro all'if metti innerhtml con il menu .
    oppure puoi fare una cosa tipo questa:
    codice:
    function barramenu()
    {
    if(variabile==1)
    {
    //inserisci html del menu
    }
    else {
    //togli l'html che hai inserito
    }
    }
    e imposta la variabile a 1 quando viene cliccata la home e la imposti a 0(o qualsiasi altro numero) quando viene premuta la prima tab del menu
    Ultima modifica di AlexDev; 18-05-2014 a 12:50

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2007
    residenza
    Trieste
    Messaggi
    828
    la tua soluzione sembra semplice, ma non mi ci sono raccapezzato (non sono proprio esperto in js)... ho provato a capire cos'è un innerhtml, ma non riesco a capire come posso inserire il mio menu <ul>

  4. #4
    Neanche io so molto di js, però posso provartelo a fare questo pomeriggio.(volendo si può usare l'attributo visibility del CSS e gestirlo con JS.Forse è la soluzione più semplice)

  5. #5
    Ciao, mi intrometto...

    Siamo nella sezione sbagliata ma, se ho capito bene e visto che hai già la libreria jQuery caricata, potresti provare con questo script da inserire in head

    codice HTML:
    <script>
    $(document).ready(function () {
        $('ul#menu').css('display', 'none')
        $('a').click(function () {
            var ancora = $(this).attr('href');
            if (ancora == '#zero') 
                $('ul#menu').css('display', 'none');
            else 
                $('ul#menu').css('display', 'block');
        })
    });
    </script>

    Devi anche aggiungere, nel codice HTML, l'id menu al tag ul del menu.

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2007
    residenza
    Trieste
    Messaggi
    828
    siamo forse nella sezione sbagliata ma molto vicino alla soluzione
    La tua infatti funziona benissimo. Però il menu compare immediatamente al click. Credi ci sia una possibilità di farlo aderire alla seconda slide (#one) in modo che ci sia l'effetto che entra da destra, come la slide stessa?

  7. #7
    Potresti provare utilizzando il metodo animate

    Però, ho pensato solo ora che, con lo script precedentemente postato, se ricarichi la pagina e sei in una sezione diversa dalla "zero", il menu scompare.

    Un'alternativa più "artigianale", senza uso di script, potrebbe essere quella di spostare e replicare il codice del menu in tutte le sezioni desiderate.
    Ovviamente devi riposizionare coi CSS i vari menu.

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2007
    residenza
    Trieste
    Messaggi
    828
    non vorrei replicare il codice per questioni di pulizia... e forse il menu che scompare potrebbe anche andare bene, perchè scompare solo se clicco sulla home e non sulle altre pagine. Quello che mi serve è un tempo di fade al click, ed ho provato a giocare con animate senza riuscire ad integrarlo allo script di cui sopra.

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2007
    residenza
    Trieste
    Messaggi
    828
    aggiornamento (cpero di spiegarmi):
    ho creato un menu (ul.name {position:fixed; bottom:40px; left:20px;}) che se inserito all'interno del wrap mi compare come desidero, cioè fisso per tutte le pagine tranne la home (l'unico problema è che non rispetta la posizione scelta e rimane al centro).
    Dunque ho pensato che si potesse evitare di ricorrere allo script dando un nome al menu principale (ul.menu) ma con mia sorpresa non si comporta allo stesso modo, ed anzi scombina tutto il layout.
    Considerato che ho anche un altro menu fisso (ul.languages),come mai non si comporta come ul.name ?

  10. #10
    Me ne sono accorto solo adesso che il topic è stato spostato nella sezione JS... ora si torna a parlare di CSS?

    Comunque, tornando su animate e sulla struttura precedente, prova a vedere se era questo che intendevi

    codice:
    $(document).ready(function () {
        $('ul#menu').css('left', '9000px');
        $('ul#menu a[href="#zero"]').trigger('click'); // al refresh si torna alla sezione zero
        $('a').click(function () {
            var ancora = $(this).attr('href');
            if (ancora == '#zero') 
                $('ul#menu').css('left', '9000px')
            else 
                $('ul#menu').animate({
                'left': '50%'
            }, 900);
        })
    });

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.