2017-10-14 5 views
1

J'essaie d'animer une hauteur d'entrée de texte. Je peux faire sorte de réaliser cela avec animer() sur le point et enlever sur le flou. Le problème est qu'il ne déplace que la bordure inférieure lorsque je souhaite déplacer à la fois le bas ET le haut de manière égale.Animation de la hauteur d'entrée de texte

$(document).ready(function(){ 
    $("input[type=text]").on("focus", function(){ 
      $(this).animate({height:40}, 200); 
      }).blur(function(){ 
      $(this).animate({height:10}, 200); 
      }) 
     }); 

code ici: Codepen

Répondre

2

Vous pouvez le faire avec CSS seul et sans javascript si vous le souhaitez.

Dans l'exemple ci-dessous, j'ai mis une entrée dans une boîte flex centrée simplement pour permettre à la hauteur de se développer verticalement vers le haut et vers le bas. Le réglage de l'axe Y de l'origine de la transformation à 50% assure que quand il le change, il le fait depuis le centre, et ne pousse tout simplement pas vers le bas. L'exemple est légèrement exagéré et vous devrez l'ajuster à vos besoins.

#formWrapper { 
 
    display: flex; 
 
    justify-content: center; 
 
    align-items: center; 
 
    min-height: 100px; 
 
} 
 

 
input { 
 
    height: 12px; 
 
    transform-origin: 50% left; 
 
    -webkit-transition: .5s ease-out; 
 
    -moz-transition: .5s ease-out; 
 
    -o-transition: .5s ease-out; 
 
    transition: .5s ease-out; 
 
} 
 

 
input:focus { 
 
height: 50px; 
 
}
<div id="formWrapper"> 
 
<input type="text" /> 
 
</div>

+0

Je pense que je vais aller avec cette solution. Je serais toujours intéressé de savoir comment cela se fait avec Jquery juste par intérêt, mais votre façon de faire fait exactement ce dont j'ai besoin. Merci Robert! – charliework

+0

Je crois que vous pouvez toujours appliquer la propriété d'origine de transformation en CSS et faire l'animation avec javascript si vous le souhaitez, mais ce serait totalement inutile. Les transitions CSS sont beaucoup plus propres et plus lisses, car vous pouvez profiter de l'accélération matérielle. Toujours essayer et aller avec des animations CSS où vous pouvez sur quelque chose comme jquery. À votre santé. –