Salta al contenuto
  • Categorie
  • Recenti
  • Tag
  • Popolare
  • Utenti
  • Gruppi
Collassa
Logo del marchio
  1. Home
  2. Coding e customizzazione (PHP, HTML, CSS)
  3. Lazy load e ancore: come risolvere?

Lazy load e ancore: come risolvere?

Pianificato Fissato Bloccato Spostato Coding e customizzazione (PHP, HTML, CSS)
6 Post 2 Autori 42 Visualizzazioni
  • Da Vecchi a Nuovi
  • Da Nuovi a Vecchi
  • Più Voti
Effettua l'accesso per rispondere
Questa discussione è stata eliminata. Solo gli utenti con diritti di gestione possono vederla.
  • luX0r75L Non in linea
    luX0r75L Non in linea
    luX0r75
    scritto ultima modifica di luX0r75
    #1

    Ciao a tutti.
    Negli articoli del mio blog utilizzo una TOC ancorata alle sezioni dell'articolo.
    Mi sono accorto che se nell'articolo ci sono delle immagini in lazy load, la prima volta che uso le ancore queste non fanno spostare la pagina nella posizione esatta.

    Questo è spiegabile con il funzionamento del lazy load stesso, perché non assegna l'altezza al container <img> se non quando con lo scrolling non si arriva all'immagine stessa, e quindi si sballa tutto il calcolo per arrivare alla sezione corretta.

    Qualcuno di voi che si è imbattuto in questo problema ha trovato una soluzione “veloce”? 😥

    Amo scrivere codice, imparare cose nuove e viaggiare leggendo un buon libro. Il software e i libri sono il mio Ikigai.
    Chissà, forse in un mondo sprovvisto di uno o l'altro non esisterei... beh, tutto sommato è andata bene!

    https://www.htmlcrusco.it

    1 Risposta Ultima Risposta
    0
    • jabbaJ Non in linea
      jabbaJ Non in linea
      jabba
      scritto ultima modifica di
      #2

      Ciao, secondo me dovresti risolvere dando comunque uno spazio pre-assegnato al container delle immagini (anche senza aver caricato l'immagine stessa). Una cosa del tipo:

      article img[loading="lazy"] {
          min-height: 200px;
      }
      

      In questo modo l'immagine (o un container genitori se la preferisci sarà già dell'altezza giusta anche se l'immagine non è caricata, e questa si carica solo nel momento in cui entra nel viewport, ma in uno spazio già assegnato.
      Ciao!

      Gianluca Gabella - smanettone IT, webbarolo, Joomler per passione - pixed.it

      1 Risposta Ultima Risposta
      0
      • luX0r75L Non in linea
        luX0r75L Non in linea
        luX0r75
        scritto ultima modifica di
        #3

        Ciao @jabba
        avevo pensato a preimpostare l'altezza, ma credo che per gestirla per il responsive diventi un casotto...

        Amo scrivere codice, imparare cose nuove e viaggiare leggendo un buon libro. Il software e i libri sono il mio Ikigai.
        Chissà, forse in un mondo sprovvisto di uno o l'altro non esisterei... beh, tutto sommato è andata bene!

        https://www.htmlcrusco.it

        1 Risposta Ultima Risposta
        0
        • jabbaJ Non in linea
          jabbaJ Non in linea
          jabba
          scritto ultima modifica di jabba
          #4

          Dovrei provare (non sono sicuro al 100%) ma se le tue foto sono tutte delle stesse dimensioni e dai un aspect ratio via CSS il browser dovrebbe riservare lo spazio in automatico (sapendo quant'è il 100% del contenitore e di conseguenza l'altezza, grazie alle proporzioni):

          .contenitore-articolo img {
            width: 100%; 
            height: auto;
            aspect-ratio: 16 / 9; 
          }
          

          Però come detto funziona solo se tutte le immagini dell'articolo hanno quell'aspect-ratio...

          Gianluca Gabella - smanettone IT, webbarolo, Joomler per passione - pixed.it

          1 Risposta Ultima Risposta
          0
          • jabbaJ Non in linea
            jabbaJ Non in linea
            jabba
            scritto ultima modifica di
            #5

            Argomento interessante, ho chiesto a Claude e mi suggerisce questo:

            <img src="foto.jpg" loading="lazy" width="1200" height="800" alt="...">
            
            img {
                max-width: 100%;
                height: auto;
            }
            

            ma non ho idea del perchè... forse il browser riesce a prendere le dimensioni e le proporzioni dagli attributi e poi con i CSS riserva lo spazio però basandosi sul 100% del contenitore. Se fosse così sarebbe una mossa bella che intelligente da parte dei browser.
            Da testare! Fammi sapere cosa scopri 😁

            Gianluca Gabella - smanettone IT, webbarolo, Joomler per passione - pixed.it

            1 Risposta Ultima Risposta
            2
            • luX0r75L Non in linea
              luX0r75L Non in linea
              luX0r75
              scritto ultima modifica di luX0r75
              #6

              Provo e ti faccio sapere 👍

              EDIT: Sembra non funzionare. Che poi io su mobile uso anche immagini che vanno in scorrimento orizzontale, senza ridimensionamento. Width 100% in questo caso fa poco.
              Niente, situazione troppo complessa per una soluzione veloce.

              Misà che il Lazy fa un bel volo fuori dalla finestra 😁

              Amo scrivere codice, imparare cose nuove e viaggiare leggendo un buon libro. Il software e i libri sono il mio Ikigai.
              Chissà, forse in un mondo sprovvisto di uno o l'altro non esisterei... beh, tutto sommato è andata bene!

              https://www.htmlcrusco.it

              1 Risposta Ultima Risposta
              0

              • Accedi

              • Non hai un account? Registrati

              • Accedi o registrati per effettuare la ricerca.
              Powered by NodeBB Contributors
              • Primo post
                Ultimo post
              0
              • Categorie
              • Recenti
              • Tag
              • Popolare
              • Utenti
              • Gruppi