css3 height transition not working

前端 未结 4 960
予麋鹿
予麋鹿 2021-01-07 18:44

i have a problem using css3 transitions how can i make the transition smooth it appears instantly
i want the div box to slowly change its height when i hover over it<

相关标签:
4条回答
  • 2021-01-07 19:02

    This solution does not need javascript or have the problem of needing to have a fixed height for the container before hand.

    This is made possible by using max-height property and setting its value to a high value.

    #imgs {
        border:1px solid #000;
        border-radius:3px;
        max-height:20px;
        width:100%;
        overflow:hidden;
        transition: 2s ease;
    }
    #imgs:hover {
        max-height:15em;
    }
    <div id="imgs">
    
      <img src="https://sslb.ulximg.com/image/405x405/artist/1346353449_4159240d68a922ee4ecdfd8e85d179c6.jpg/e96a72d63f272127d0b6d70c76fd3f61/1346353449_eminem.jpg" />
    </div>

    0 讨论(0)
  • 2021-01-07 19:10

    I believe you need to set a specified height instead of auto. http://jsfiddle.net/BN4Ny/ this does a smooth expansion. Not sure if you wanted that little close open effect though. I just forked your jsfiddle and added a specified height.

    0 讨论(0)
  • 2021-01-07 19:20

    Here's how you can do it: http://jsfiddle.net/minitech/hTzt4/

    To keep a flexible height, JavaScript is a necessity, unfortunately.

    0 讨论(0)
  • 2021-01-07 19:25

    Instead of using a set height on a container or using JS (which are both awkward solutions)... You can put the images in list items and work your transition on the li.

    If all the images are going to a similar height it means your content inside the container can still be dynamic. For example...

    /*
    CLOSED
    */
    
    div.container li 
    
    {  height:0px;
    
    -webkit-transition: all 0.5s ease;
    -moz-transition: all 0.5s ease;
    -ms-transition: all 0.5s ease;
    -o-transition: all 0.5s ease;
    transition: all 0.5s ease;}
    
    /*
    OPEN
    */
    
    div.container:hover li 
    
    {  height:30px;
    
    -webkit-transition: all 0.5s ease;
    -moz-transition: all 0.5s ease;
    -ms-transition: all 0.5s ease;
    -o-transition: all 0.5s ease;
    transition: all 0.5s ease;}
    
    0 讨论(0)
提交回复
热议问题