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
.wrapper
n'est pas aussi large qu'il doit être.- quand
.contents
grandit, quand il est presque à la totalité de la largeur, il saute à la ligne suivante - Lorsque vous vous déplacez de
.wrapper
,.contents
s'évanouit, quand il devrait animer le bas pour0px
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
.
Vous devez vous connecter pour publier un commentaire.
Je pense que je l'ai.
CSS:
HTML:
L'animation à
100%
causes de conclure parce que la boîte est plus grande que la largeur disponible (100% moins les+
et les espaces qui la suit).Au lieu de cela, vous pouvez animer un à l'intérieur de l'élément, dont
100%
est la largeur totale de.contents
..wrapper
pour obtenir plus grand et moins large que nécessaire, j'ai essayé un peu mais je ne peux pas l'obtenir. C'est le n ° 1 ci-dessus dans la liste, peut-être que je n'ai pas expliqué que l'un très bien. Si l'emballage ne doivent pas être plus grand que le "+" avec l'égalité de rembourrage sur tous les côtés. Puis.wrapper
pousse en largeur comme.contents
n'. Je pensais que cela allait être super simple à faire, mais j'ai eu beaucoup de problèmes avec elle..wrapper
's la largeur n'est pas 0;.wrapper
's la largeur est toujours de.contents
's largeur sans aucun contenu à l'intérieur. Pas une grosse affaire. Comment faire.wrapper
grandir et rétrécir avec.contents
. Avec CSS. C'est la question!http://jsfiddle.net/tVHYg/5/
Réussi à le faire fonctionner par la transition de rembourrage ainsi que la largeur.
JSFiddle: http://jsfiddle.net/tuybk748/1/
Je n'ai pas été en mesure de le faire fonctionner sans spécifier la largeur, mais la suite css travaillé
Je ne suis pas sûr que vous serez en mesure de le faire fonctionner sans réglage de largeur sur elle.