Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 16 su 16
  1. #11
    Questa è una pagina coi link interni...
    codice:
     http://pugniespinaci.altervista.org/mondo.php

  2. #12
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,690
    Testato con FF, CH e ED/IE su desktop; il problema del #top lo riscontro solo su CH. Con lo script proposto ho verificato che Chrome non applica lo scorrimento sul target se il valore di location.hash non è cambiato. Andando per tentativi ho quindi provato a "ripulire" questa proprietà prima di riassegnare il valore; in questo modo vedo che funziona.

    Prova in questo modo:
    codice:
    $('a[href^="#"]').click(function(e){
        scrollOn(this.hash);
        e.preventDefault();
    });
    function scrollOn(a){
        location.hash = '';
        location.hash = a;
        window.scrollBy(0, -86);
    }
    $(function(){if (location.hash) scrollOn(location.hash);});
    Quote Originariamente inviata da Gas75
    Il buon vecchio JavaScript rimane lo strumento lato client più universale in fatto di compatibilità coi vari browser,
    Le ultime parole famose Purtroppo il problema non è né JavaScript né CSS né HTML ma è il differente modo con cui questi linguaggi vengono interpretati da ogni singolo browser.

    C'è anche un'altra stranezza rilevata da smartphone: i link che puntano a un hashtag di un'altra pagina non sono precisi, cioè la pagina si carica ma quasi subito fa uno scatto e scende...
    Questo dipende dal fatto che andiamo ad aggiustare lo scroll nella funzione ready della pagina; in sostanza, solo dopo che il documento è stato caricato e, presumibilmnete, è già avvenuto lo scroll di default. Chiaramente è necessario che lo scroll di default avvenga prima di effettuare l'aggiustamento con l'applicazione dell'offset.

    Penso sia un compromesso che devi prendere così, non penso si possa evitare e non so se si possa migliorare.


    EDIT:
    aspetta, per "fa uno scatto e scende" intendi che si posiziona inizialmente senza offset e poi viene applicato mostrando quindi lo scatto (ma posizionandosi correttamente) o, al contrario, viene applicato l'offset ma poi avviene l'azione di default quindi lo scroll torna al valore senza offset?
    Ultima modifica di KillerWorm; 12-05-2020 a 22:50
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #13
    Scusa se non ho risposto prima, sono stato impegnato in altro, e ieri c'era un problema nell'accedere alle discussioni di tutto il forum.
    Non ho ancora testato il nuovo codice, grazie comunque...
    aspetta, per "fa uno scatto e scende" intendi che si posiziona inizialmente senza offset e poi viene applicato mostrando quindi lo scatto (ma posizionandosi correttamente) o, al contrario, viene applicato l'offset ma poi avviene l'azione di default quindi lo scroll torna al valore senza offset?
    Inizialmente si posiziona nel punto giusto, cioè sull'id corretto, posizionato appena sotto la navbar fissa, poi però scende di parecchio (in sostanza l'H2 dell'id finisce quasi in fondo alla schermata). Quindi la pagina complessivamente scende di una quantità eccessiva, ma esclusivamente da smartphone, in quei pochi casi di link verso id di pagine diverse...

  4. #14
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,690
    Scusa se non ho risposto prima, sono stato impegnato in altro, e ieri c'era un problema nell'accedere alle discussioni di tutto il forum.
    No problem sì, c'è stato un blocco ieri mattina, qualche ingranaggio arrugginito della piattaforma, poi di pomeriggio ha ripreso a funzionare, deve essere che gli hanno spruzzato un po' di svitol.

    Non ho ancora testato il nuovo codice, grazie comunque...
    ok, fai sapere.

    Inizialmente si posiziona nel punto giusto [...] Quindi la pagina complessivamente scende di una quantità eccessiva...
    in tal caso la situazione non mi quadra.

    La gestione dei link ad altre pagine con hashtag viene fatta da quell'ultima riga di script dove l'offset viene aggiunto sostanzialmente una volta caricata la pagina, cioè attraverso il ready (la funzione $() di jQuery) che si verifica appena la pagina è pronta; ma anche se il ready dovesse non rispondere in modo corretto, lo scorrimento dovrebbe tuttalpiù posizionarsi ignorando gli 86px di offset. Però da quello che dici si posiziona in modo inconsistente.

    Se posti un link esatto in cui si presenta questo problema, provo a fare qualche verifica.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #15
    Il nuovo script funziona!
    In sostanza
    codice:
    location.hash = '';
    cancella quello che c'è nell'url da # in poi?

    Per quanto riguarda l'altra stranezza, può essere correlata con la comparsa di un banner pubblicitario dopo il caricamento della pagina?

  6. #16
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,690
    Il nuovo script funziona!
    Bene

    location.hash = '';
    cancella quello che c'è nell'url da # in poi?
    Più esattamente solo ciò che c'è dopo #.

    Quando si modifica tale proprietà il comportamento è evidentemente diverso tra i vari browser. Su FF infatti vedo che anche riassegnando lo stesso valore viene eseguito comunque lo scroll (anche se sullo stesso identico punto), mentre a quanto pare non è così per CH in cui appunto è necessario che il valore risulti modificato per effettuare nuovamente lo scroll. Quella riga forza sostanzialmente la modifica di tale valore.

    Per quanto riguarda l'altra stranezza, può essere correlata con la comparsa di un banner pubblicitario dopo il caricamento della pagina?
    Non so dirti ma a questo punto potrebbe dipendere da qualsiasi cosa.

    Ripeto, se puoi postare un link esatto posso verificare di persona.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

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