Bonjour à tous,
J'ai un petit (gros) problème pour réaliser ce que je souhaite avec javascript/JQuery.
Ma page se présente sous la forme d'un tableau listant un certain nombre d'articles. Lorsque l'on passe la souris sur le nom de l'article, une description s'affiche avec JQuery. Pour réaliser cet affichage de description, je me suis basé sur un toolTip que j'ai adapté du net. (jquery.tinyTips)
J'ai réussi à obtenir ce que je voulais sur la page chargée par le navigateur. A savoir que j'ai bien une description qui s'affiche lorsque la souris passe par dessus le nom, et point important, même si on scroll vers le bas du tableau. L'affichage se fait toujours sur le nom.
Mais voilà mon problème. Avant de réussir à faire ça, le toolTip que j'ai utilisé proposait de mettre les descriptions en position absolute en utilisant leur offset() (JQuery) par rapport au body.
Cela avait pour effet d'afficher des descriptions sous le tableau lorsque l'on passait sur des articles non visibles de base. Donc pas très esthétique.
J'ai donc utilisé la méthode position() pour placer les éléments dans le div contenant le tableau. Et cela a marché. (Donc j'avais bien les descriptions scrollables)
Le problème lui même : J'ai également une recherche par catégorie qui peut s'effectuer. Un menu déroulant et on clique pour afficher les articles désirés. Pour afficher le résultat sans recharger la page, j'utilise AJAX et inclue mon nouveau tableau dans le div conteneur. Mais les descriptions disparaissent. Par contre, avec la méthode offset() je parviens à les afficher même après chargement par AJAX. Sauf que y'a toujours apparition au mauvais endroit =( ...
Voilà. Est-ce que quelqu'un s'y connaitrait bien en offset, position pour me dire si y'a un moyen de faire ce que je veux?
Sinon, une autre méthode peut être?
J'imagine qu'en faisant une méthode en rechargeant entièrement la page je devrais pouvoir m'en sortir... Juste moyennement envie de tout recommencer.
Merci par avance.
Edit : Le problème n'est pas lié à offset() ou position() mais au div conteneur. J'obtiens le même résultat si j'utilise offset() ou position() en mettant le même div conteneur... Et pas d'affichage dans les deux cas.
Le problème serait donc de savoir pourquoi il ne repère pas les éléments lorsque je change le contenu du div...
Edit 2 : En fait si j'arrivais à récupérer la position de l'élément sur la page visible, sans prendre en compte la "distance scrollée" je pourrais m'en sortir.
Partager