Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    Utilizzo di bordi con transizioni

    Ciao a tutti, avrei bisogno del vostro supporto per un problema.

    Ho delle immagini sulle quali ho realizzato un effetto zoom + filtro brightness al passaggio del mouse (ovviamente allo scopo di evidenziare l'area dove passa il mouse).

    Ora, oltre agli effetti zoom e brightness di cui sopra, vorrei aggiungere anche un bordo (interno) che aumento al passaggio del mouse.

    Così ho usate la funzione outline e outline-offset, ma si verifica un problema: il bordo "aumentato" si vede solo per una frazione di secondo, per poi sparire subito.

    Penso che dipenda dal fatto che gli effetti zoom e brightness hanno una transizione di 0.3secondi, mentre il bordo è "immediato".

    Pertanto per una sola frazione di secondo si vede il bordo, ma poi sparisce subito, dal momento che viene "coperto" dalla transizione sopra citata.

    Vi viene in mente un modo per risolvere?

    Di seguito il codice CSS che sto utilizzando.

    Grazie!

    codice:
    .link .immagine_griglia {
    vertical-align: middle;
    transition: transform .3s ease, filter .3s ease-in-out;
    filter: brightness(100%);
    outline: solid 1px #888;
    outline-offset: -1px;
    }
    
    
    .link:hover .immagine_griglia { 
    transform: scale(1.2);
    filter: brightness(70%);
    outline: solid 10px #888;
    outline-offset: -10px;
    
    }

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao, quel CSS preso da solo funziona correttamente. Il bordo outline si vede e resta visibile anche all'hover.

    Da quanto hai indicato ho l'impressione che l'elemento contenitore (.link o chi per lui) abbia un overflow:hidden o comunque l'immagine è ritagliata al suo interno.

    Se così fosse, dal momento che immagine_griglia viene ingrandito, è abbastanza logico che il contorno, compreso l'outline, risulta non visibile essendo tagliato fuori dall'elemento contenitore.

    In tal caso una soluzione può essere quella di applicare outline al contenitore, piuttosto che al contenuto.

    Fai sapere se il problema dipende da questo altrimenti cerca di chiarire meglio il contesto fornendo un esempio completo per poter riprodurre il problema.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    Ciao, quel CSS preso da solo funziona correttamente. Il bordo outline si vede e resta visibile anche all'hover.

    Da quanto hai indicato ho l'impressione che l'elemento contenitore (.link o chi per lui) abbia un overflow:hidden o comunque l'immagine è ritagliata al suo interno.

    Se così fosse, dal momento che immagine_griglia viene ingrandito, è abbastanza logico che il contorno, compreso l'outline, risulta non visibile essendo tagliato fuori dall'elemento contenitore.

    In tal caso una soluzione può essere quella di applicare outline al contenitore, piuttosto che al contenuto.

    Fai sapere se il problema dipende da questo altrimenti cerca di chiarire meglio il contesto fornendo un esempio completo per poter riprodurre il problema.
    Ciao Worm, hai centrato il punto, c'è un overflow:hidden e la conseguenza è esattamente quella che hai descritto.

    Ho provato ad applicare l'outline all'elemento contenitore, ma continua a non funzionare.

    Considera inoltre che la dimensione delle immagini è flessibile, per essere responsive.

    Ho provato ad applicare l'outline sia al div contenitore dell'immagine (sul quale c'è l'overflow:hidden), sia ad un ulteriore div contenitore che ho aggiunto.

    In entrambi i casi senza successo.

    Vorrei postare un link ma sto lavorando in locale di mamp e non saprei come fare.

    Provo a postare una porzione di codice più ampia:

    codice:
      <div class="contenitore_immagine_griglia">    <div class="img-parent">
          <img src="http://localhost/wp-content/themes/bonlawtemplate 9/images/XXX.jpg" class="immagine_griglia">
        </div>
    </div>
    codice:
    .link .immagine_griglia {vertical-align: middle;
    transition: transform .3s ease, filter .3s ease-in-out;
    filter: brightness(100%);
    outline: solid 1px #888;
    outline-offset: -1px;
    }
    
    
    .link:hover .immagine_griglia { 
    transform: scale(1.2);
    filter: brightness(70%);
    }
    
    
    .img-parent {
    overflow: hidden; 
    }
    
    
    .contenitore_immagine_griglia{
    outline: solid 10px #000;
    outline-offset: -10px;
    }

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Quote Originariamente inviata da ivanisevic82
    ma continua a non funzionare
    Ciao, ok, chiarisci esattamente cosa intendi per "continua a non funzionare".

    Quote Originariamente inviata da ivanisevic82
    Considera inoltre che la dimensione delle immagini è flessibile, per essere responsive.
    Ok, questo non dovrebbe essere un problema ma bisogna capire come si comporta il contenitore attorno all'immagine.

    Ho provato ad applicare l'outline
    ...
    In entrambi i casi senza successo.
    Io ho provato a riportare il codice in un documento html e vedo correttamente l'outline nero attorno al contenitore.
    Chiaramente in questo caso resta fisso (cioè non compare solo quando passi col mouse) perché lo hai applicato allo stato principale del contenitore senza impostare l'hover.

    Ad ogni modo lo vedo.

    Vorrei postare un link ma sto lavorando in locale di mamp e non saprei come fare.
    Il massimo sarebbe se tu riuscissi a portare un esempio online.

    Se hai uno spazio web tuo, o magari uno gratuito, puoi provare a riportare una copia statica della pagina.

    Cioè, apri la pagina in locale sul tuo browser e premi CTRL+S da tastiera, oppure fai menu "File > Salva pagina con nome", o menu contestuale (click destro) "Salva con nome..."

    Scegli il desktop o una cartella dove vuoi salvare, controlla che la casella "Salva come:" sia impostata alla voce "Pagina web, completa"
    quindi premi salva.

    Sarà creato un file con estensione .htm o .html e una cartella, collegata al file, che contiene tutti i file richiesti per visualizzare la pagina.

    A quel punto puoi fare un upload del file e dell'intera cartella sul tuo spazio online e postare qui il link.
    In questi casi è bene assicurarsi che la pagina non contenga contenuti o dati privati, magari offuscarli se serve.

    In alternativa puoi usare qualsiasi code playground (uno tra tanti può essere jsfiddle) ma in questo caso non puoi facilmente riportare l'intera pagina con tutti i file esterni, dovresti invece preparare un esempio ad hoc in cui è possibile vedere e valutare il problema.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    Ciao, ok, chiarisci esattamente cosa intendi per "continua a non funzionare".


    Ok, questo non dovrebbe essere un problema ma bisogna capire come si comporta il contenitore attorno all'immagine.


    Io ho provato a riportare il codice in un documento html e vedo correttamente l'outline nero attorno al contenitore.
    Chiaramente in questo caso resta fisso (cioè non compare solo quando passi col mouse) perché lo hai applicato allo stato principale del contenitore senza impostare l'hover.

    Ad ogni modo lo vedo.


    Il massimo sarebbe se tu riuscissi a portare un esempio online.

    Se hai uno spazio web tuo, o magari uno gratuito, puoi provare a riportare una copia statica della pagina.

    Cioè, apri la pagina in locale sul tuo browser e premi CTRL+S da tastiera, oppure fai menu "File > Salva pagina con nome", o menu contestuale (click destro) "Salva con nome..."

    Scegli il desktop o una cartella dove vuoi salvare, controlla che la casella "Salva come:" sia impostata alla voce "Pagina web, completa"
    quindi premi salva.

    Sarà creato un file con estensione .htm o .html e una cartella, collegata al file, che contiene tutti i file richiesti per visualizzare la pagina.

    A quel punto puoi fare un upload del file e dell'intera cartella sul tuo spazio online e postare qui il link.
    In questi casi è bene assicurarsi che la pagina non contenga contenuti o dati privati, magari offuscarli se serve.

    In alternativa puoi usare qualsiasi code playground (uno tra tanti può essere jsfiddle) ma in questo caso non puoi facilmente riportare l'intera pagina con tutti i file esterni, dovresti invece preparare un esempio ad hoc in cui è possibile vedere e valutare il problema.

    Ok, fatto.

    Ecco i due link (all'html e alla cartella).

    http://gofile.me/5aNPI/X6mRK07ru


    http://gofile.me/5aNPI/CmnChPXUC

    La password per scaricarli te le mando per PM in quanto si tratta di file presenti nel mio NAS, non vorrei consentire il download a chiunque, spero che per te vada bene.

    Ovviamente, per rendere la discussione utile e fruibile a tutti, una volta individuato il problema, scriverò qui sul topic qual'era la soluzione da adottare.

    Grazie mille!

    EDIT: dimenticavo, quando vedrai la pagina, concentrati solo sulla prima immagine, è l'unica dove ho messo il div aggiuntivo.

    Grazie!
    Ultima modifica di ivanisevic82; 26-12-2022 a 16:06

  6. #6
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ok, mi dice però che la pw non è valida
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  7. #7
    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    Ok, mi dice però che la pw non è valida
    Riprova con questi, stessa pw:

    http://gofile.me/5aNPI/dczUIMcuo
    http://gofile.me/5aNPI/4X6RQzaE6

  8. #8
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ok, scaricato, gli do uno sguardo e ti aggiorno appena possibile.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  9. #9
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Errore mio outline viene applicato ma appare comunque sotto i contenuti Quando lo applichi al contenitore risulta quindi nascosto dall'immagine stessa che gli sta dentro.

    A questo punto puoi risolvere impostando opportunamente uno pseudo elemento al contenitore.

    Non serve aggiungere ulteriori contenitori, basta quello più prossimo all'immagine.

    Rimuovi pure gli outline che avevi già applicato, imposta position:relative per .img-parent (lasciando pure overflow:hidden) e definisci lo pseudo-elemento ::before: con position:absolute. Quindi estendi questo per tutta la dimensione disponibile e applicagli un "semplice" bordo al posto di outline.

    Qui un esempio di come potresti fare:

    codice:
    .img-parent {
      overflow: hidden;
      position: relative;
    }
    .img-parent::before {
      content: '';
      display: block;
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      right: 0;
      z-index: 1;
      border: 0px solid #fff;
      opacity: 0;
      transition: .2s ease-in;
    }
    .link:hover .img-parent::before {
      opacity: .5;
      border-width: 12px;
    }
    Fai sapere, se hai bisogno di chiarimenti chiedi pure.
    Buon proseguimento e Buone Feste!
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  10. #10
    Wow, Killer, super grazie mille!

    Avevo provato anche io ad operare con una pseudo classe, ma non ero riuscito ad "organizzarla" in maniera tale da farla funzionare così come volevo.

    Ti faccio una domanda tecnica, per completezza: i due punti prima di before devono essere necessariamente doppi? C'è una ragione per cui lo sono?

    Lo domando in quanto mi è capitato di vedere sia ":before", sia "::before".

    Grazie ancora!

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.