Qu'est-ce qui fait que le tooltip s'affiche sur le bas ? Si je veux qu'il s'affiche sur le haut qu'est-ce que je dois modifier et ou ?
C'est principalement le
JavaScript, dans la fonction
positionTooltip(), dans le fichier
customtooltip.js il y a ce bloc qui force l'affichage
systématiquement au-dessus
Code: Tout sélectionner
if (isPointerPositioned && typeof pointerX === 'number' && typeof pointerY === 'number')
{
left = pointerX - (tooltipRect.width / 2);
top = pointerY + gap;
}
else
{
left = rect.left + (rect.width / 2) - (tooltipRect.width / 2);
top = rect.bottom + gap;
}
Il faut remplacer par ce bloc
Code: Tout sélectionner
if (isPointerPositioned && typeof pointerX === 'number' && typeof pointerY === 'number')
{
left = pointerX - (tooltipRect.width / 2);
top = pointerY - tooltipRect.height - gap;
}
else
{
left = rect.left + (rect.width / 2) - (tooltipRect.width / 2);
top = rect.top - tooltipRect.height - gap;
}
Il faudra modifier le sens de la flèche, dans le CSS se trouve cette classe
.caforum-global-tooltip.caforum-tooltip-above qui sert à placer la flèche
en dessous du tooltip.
Le JS ajoute cette classe seulement lorsqu'il n'y a plus assez de place en bas :
Code: Tout sélectionner
if (top + tooltipRect.height > window.innerHeight - margin)
{
if (isPointerPositioned && typeof pointerY === 'number')
{
top = pointerY - tooltipRect.height - gap;
}
else
{
top = rect.top - tooltipRect.height - gap;
}
tooltip.classList.add('caforum-tooltip-above');
}
Si tu veux que le tooltip soit toujours au-dessus, il faut ajouter
tooltip.classList.add('caforum-tooltip-above'); juste après
tooltip.classList.remove('caforum-tooltip-above');
Donc :
Code: Tout sélectionner
tooltip.classList.add('caforum-tooltip-above');
tooltip.classList.remove('caforum-tooltip-above');
Mais il y a une petite subtilité : le code actuel prévoit déjà un retournement automatique lorsque le tooltip ne tient pas dans la fenêtre. Si tu veux toujours au-dessus sauf lorsqu'il n'y a réellement pas assez de place, je te conseille de conserver cette logique plutôt que de la supprimer.
Dans le fichier js remplace ce bloc :
Code: Tout sélectionner
if (isPointerPositioned && typeof pointerX === 'number' && typeof pointerY === 'number')
{
left = pointerX - (tooltipRect.width / 2);
top = pointerY + gap;
}
else
{
left = rect.left + (rect.width / 2) - (tooltipRect.width / 2);
top = rect.bottom + gap;
}
tooltip.classList.remove('caforum-tooltip-above');
Par celui-ci :
Code: Tout sélectionner
if (isPointerPositioned && typeof pointerX === 'number' && typeof pointerY === 'number')
{
left = pointerX - (tooltipRect.width / 2);
top = pointerY - tooltipRect.height - gap;
}
else
{
left = rect.left + (rect.width / 2) - (tooltipRect.width / 2);
top = rect.top - tooltipRect.height - gap;
}
tooltip.classList.add('caforum-tooltip-above');
Plus bas dans la fonction, tu as :
Code: Tout sélectionner
if (top + tooltipRect.height > window.innerHeight - margin)
{
if (isPointerPositioned && typeof pointerY === 'number')
{
top = pointerY - tooltipRect.height - gap;
}
else
{
top = rect.top - tooltipRect.height - gap;
}
tooltip.classList.add('caforum-tooltip-above');
}
A remplacer par :
Code: Tout sélectionner
if (top < margin)
{
if (isPointerPositioned && typeof pointerY === 'number')
{
top = pointerY + gap;
}
else
{
top = rect.bottom + gap;
}
tooltip.classList.remove('caforum-tooltip-above');
}
Fichier js de remplacement