Animer un élément de la largeur de 0 à 100%, et en plus c'est wrapper être aussi large que dont ils ont besoin pour être, sans un pré-réglage de la largeur, en CSS3 jQuery

http://jsfiddle.net/nicktheandroid/tVHYg/

Lorsque le curseur de .wrapper, c'est l'élément enfant .contents devrait animer de 0px à il est naturel de largeur. Puis, quand la souris est retiré de .wrapper, il devrait animer l'arrière en bas à 0px. Le .wrapper élément ne doit être aussi large qu'il doit être (permettant .contents de croître), de sorte .wrapper devrait se développer en largeur et rétrécissent la largeur .contents n'. Il devrait y avoir pas de définir la largeur de la .contents. Je suis à l'aide de CSS3, mais il peut être accompli dans jQuery, ce serait bien.

Le problème:
Voir le JSfiddle

  1. .wrapper n'est pas aussi large qu'il doit être.
  2. quand .contents grandit, quand il est presque à la totalité de la largeur, il saute à la ligne suivante
  3. Lorsque vous vous déplacez de .wrapper, .contents s'évanouit, quand il devrait animer le bas pour 0px

CSS:

.wrapper {
    display: inline-block;

    height: 20px;
    width: auto;
  
    padding:10px;
  
    background:#DDD;
}

.contents {
    display:inline-block;
  
    width:0%;
  
    white-space:nowrap;
    overflow:hidden;
  
    background:#c3c;
}

.wrapper:hover .contents {
    -webkit-transition: width 1s ease-in-out;
    -moz-transition: width 1s ease-in-out;
    -o-transition: width 1s ease-in-out;
    transition: width 1s ease-in-out;

    width:100%;
}

HTML:

<div class="wrapper">
    <span>+</span>
    <div class="contents">These are the contents of this div</div>
</div>

  • #3 est simple: déplacez votre transition des styles de .contents.
InformationsquelleAutor android.nick | 2011-10-22