J'ai un long champ de texte et ce que je veux faire est que lorsqu'un utilisateur tape un caractère '@', une liste d'utilisateurs apparaît comme une auto-complétion typique. Cependant, je veux que la liste des utilisateurs apparaisse au-dessous du caractère '@' qui pourrait être 20-30 caractères à partir du début de la zone de texte.Comment positionner un élément en dessous d'une zone de texte carret en javascript?
J'ai trouvé beaucoup de plugins jQuery auto-compléts mais aucun qui positionne la liste en dessous de la position actuelle du curseur.
Je peux obtenir la position du champ de texte en utilisant $('#textfield').position()
et je peux obtenir la position du curseur en utilisant something like this mais qui obtient l'index de caractères à partir de la valeur du texte et non de la position du pixel.
Comment puis-je obtenir la position actuelle d'un champ de texte par rapport à la page en pixels afin de positionner un élément en dessous?
si vous pouvez obtenir la position du champ de texte qui est relative à l'écran et simplement ajouter la position carret qui est relative à la boîte de texte je suppose. vous aurez la position carret par rapport à l'écran. no? ... –
@guy La position du curseur dans l'exemple est l'indice de caractère de la valeur du texte et non la position du pixel du curseur. –
J'ai édité la question pour la rendre un peu plus claire mais 'position()' obtient la position du pixel tandis que l'exemple que j'ai donné obtient l'indice du caret. Ce que j'ai besoin de savoir est fondamentalement, comment puis-je les ajouter ensemble? –