Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Proprietà transform: scale() e transform-origin

  1. #1

    Proprietà transform: scale() e transform-origin

    Ciao a tutti, devo usare la proprietà transform:scale(), combinata con la proprietà transition, su un immagine facendola ingrandire a partire da un angolo e non dal centro come di default, quando ci passo sopra con il mouse (quindi selettore hover). L'effetto è quello di ingrandire e ridurre gradualmente la figura. Per fare questo ho usato la proprietà transform-origin: 0 0; e funziona perfettamente l'ingrandimento. Il problema è quando con il mouse esco dalla figura... l'immagine ritorna alle dimensioni originali ma stavolta lo fa partendo dal centro e quindi crea un effetto bruttissimo. Qualcuno sa come la si fa a far tornare indietro sempre dallo stesso spigolo usato per farla ingrandire? grazie mille.

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    4,015
    Ciao, la cosa mi suona strana, bisognerebbe capire esattamente quali regole CSS vengono applicate e in che modo. Puoi postare il codice CSS che stai usando con un eventuale esempio della situazione?
    O meglio, puoi postare un link dell'eventuale pagina dove si presenta il problema?
    Prima di postare considera che tra i link utili puoi trovare il 75% delle risposte alle tue domande; il 15% tra i post del forum; il 9% sul web.
    Ti resta l’1% ... usalo bene!

    Le cattive domande sono quelle che non meritano risposta, le buone domande sono quelle che non hanno risposta
    L'Itailano non e nu'opnioine. E' improntate uslaro correattemtne sul froum. Garize!

  3. #3
    Certo, ti allego la parte di codice HTML e la parte di codice CSS che crea e gestisce quest'effetto.
    Codice HTML:
    codice:
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="style.css" type="text/css"/>
    <title>Untitled Document</title>
    </head>
    <body>
    <section class="sezione">
        <div class="picStruttura">
            <img src="../Pagine/Media/acero.png"/>
            </div>
        <div class="descr">
            <h1>Struttura</h1>
            <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus 
            </p>
        </div>
    </section>
    </body>
    </html>
    Codice CSS:
    codice:
    @charset "utf-8";/* CSS Document */
    *{
        margin: 0px;
        padding: 0px;
    }
    body{
        background-color: #E1E1E1;
    }
    .sezione{    
        border-radius: 20px;
        padding: 30px;
        width: 800px;
        margin: 0px auto;
        background-color: #EFEFEF;
        margin-bottom: 60px;
    }
    div.picStruttura{
        float: left;
        width: 250px;
        margin: 0px 20px 10px 0px;
        transition: transform;
        transition-duration: 1s;
    }
    div.picStruttura img{
        width: 250px;
    }
    div.picStruttura:hover{
        transform-origin: 0 0;
        transform: scale(1.5,1.5);
    }
    .sezione h1 {
        margin-bottom: 10px;
    }
    .sezione p{
        display: inline;
    }
    Chiamiamolo zoom, me lo fa dallo spigolo che io voglio. Ma il ritorno alle dimensioni normali me lo fa centrale.
    Ciao e grazie intanto

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    4,015
    Bene, a grandi linee il problema è dato dal fatto che il valore di default per transform-origin è 50% 50% (cioè il centro dell'elemento, come chiaramente sai) ma tu stai variando questo valore solo sullo stato :hover, mentre lo stato normale continua ad avere il valore di default e genera quindi questo problema. La cosa si risolve molto semplicemente spostando transform-origin: 0 0; dal selettore con :hover a quello normale, cioè metterlo sotto div.picStruttura.
    Prima di postare considera che tra i link utili puoi trovare il 75% delle risposte alle tue domande; il 15% tra i post del forum; il 9% sul web.
    Ti resta l’1% ... usalo bene!

    Le cattive domande sono quelle che non meritano risposta, le buone domande sono quelle che non hanno risposta
    L'Itailano non e nu'opnioine. E' improntate uslaro correattemtne sul froum. Garize!

  5. #5
    Grazie mille, funziona. Buona continuazione

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