Fade out valeur de texte à l'intérieur d'un champ de texte à l'aide de jQuery
Je ne suis pas entièrement sûr si c'est possible ou pas, je suis assez bien informé quand il s'agit de jQuery et JavaScript en général, mais celui-ci m'a déconcerté. J'ai créé un plugin simple qui efface la saisie de texte sur l'objet, puis affiche la valeur par défaut si rien n'a été entré.
Est-il possible de fade out juste le texte lui-même à l'intérieur de la saisie de texte, et non pas l'ensemble du champ lui-même? Toutes les tentatives sembler être le résultat dans le champ de texte lui-même à la décoloration et finalement se cacher l'élément de la vue.
Je suis venu avec une solution de l'utilisation de couvre contenant la valeur par défaut et absolument positionnement sur la saisie de texte, le masquage et l'affichage en fonction si un utilisateur a entré un texte ou pas. Je préférerais de beaucoup beaucoup approche simple s'il en existe un.
Modifier
À l'aide de la fonction animate de jQuery qui est en jQuery UI ou disponibles en tant que plugin pour jQuery, vous pouvez animer la couleur du texte à la couleur de l'entrée sur la focalisation et le flou du champ (comme l'a souligné ci-dessous). Voici le code que j'utilise dans des cas vous voulais savoir comment.
obj.bind("focus", function() {
if ($(this).val() == oldValue) {
$(this).animate({ color: '#E8DFCC' }, 1000).val('');
}
});
obj.bind("blur", function() {
if ($(this).val().length <= 3) {
$(this).animate({ color: '#56361E' }, 600).val(oldValue);
}
});
- Vous avez déjà cloué le meilleur de la croix-navigateur solution ici, un élément positionné sur le dessus, pas sûr que vous pouvez l'améliorer tout en travaillant partout.
Vous devez vous connecter pour publier un commentaire.
Juste une pensée rapide, avez-vous essayé d'utiliser l'animation de la méthode pour changer la couleur du texte dans la zone de texte pour s'adapter au fond? Ensuite, lorsque l'animation est terminée, vous pouvez effacer le contenu.
Sa pensée. Son été un moment depuis que j'ai utilisé l'animation des trucs, mais je pourrais probablement concocter un exemple de code si vous êtes intéressé.
voici ce que j'utilise exactement cela.
d'abord l'ajouter à votre JavaScript comprend:
http://plugins.jquery.com/project/color
ensuite ce faire:
ce que cela va faire est fondu à l'ouverture du texte à la couleur de fond et ensuite vider le champ de saisie. et sur le flou afficher le texte par défaut en premier, puis fondu revenue à sa couleur d'origine.
une illusion 🙂
vous pouvez supprimer une grande partie de cette si vous ne souhaitez pas réellement effacer le champ. mais vous obtenez l'idée. la clé ici deux choses. utiliser le plugin color et .animate() de l'effet.
Je viens de tomber sur ce problème, ma solution est très simple, il suffit de modifier l'attribut "value" de'. Ce sera essentiellement de remplacer le texte avec rien.
$(selector).val("");
est encore plus courte.