Material-design-lite: Mauvais positionnement des info-bulles

Créé le 8 juil. 2015  ·  3Commentaires  ·  Source: google/material-design-lite

Plus un cas marginal mais qui se produit néanmoins dans une application que je développe actuellement. Ce scénario ne se produit que si une barre de défilement est présente et que l'élément en question a une traduction appliquée via CSS.

Voir exemple ici (survolez la case rouge)

Quelque chose comme ça résoudrait théoriquement le problème (je pense)

let rect = el.getBoundingClientRect();
let left = rect.left + window.pageXOffset;
let top = rect.top + window.pageYOffset;

// now we have a more accurate representation of the current top / left coords
P1 Tooltip

Commentaire le plus utile

TIL !

Le comportement observé est correct selon la spécification CSS :

Pour les éléments dont la disposition est régie par le modèle de boîte CSS, toute valeur autre que none pour la transformation entraîne la création à la fois d'un contexte d'empilement et d'un bloc contenant. L'objet agit comme un bloc conteneur pour les descendants à position fixe.

Nos infobulles sont positionnées à l'aide position: fixed . Cela signifie qu'en appliquant une transformation - même s'il s'agit d'un NOP - vous avez déplacé l'origine pour un positionnement fixe.

La solution simple consiste à déplacer l'info-bulle vers un autre conteneur (ou body ).

Tous les 3 commentaires

Bug intéressant. Je peux confirmer que cela se produit en raison de la transformation, mais je ne comprends pas _pourquoi_. Cela devrait être résolu car cela pourrait être une chose assez courante qui se fait maintenant avec la récente poussée des animations par le Web.

TIL !

Le comportement observé est correct selon la spécification CSS :

Pour les éléments dont la disposition est régie par le modèle de boîte CSS, toute valeur autre que none pour la transformation entraîne la création à la fois d'un contexte d'empilement et d'un bloc contenant. L'objet agit comme un bloc conteneur pour les descendants à position fixe.

Nos infobulles sont positionnées à l'aide position: fixed . Cela signifie qu'en appliquant une transformation - même s'il s'agit d'un NOP - vous avez déplacé l'origine pour un positionnement fixe.

La solution simple consiste à déplacer l'info-bulle vers un autre conteneur (ou body ).

Hum, très intéressant. Au moins, nous savons maintenant et pouvons diriger les gens ici si cela se reproduit. Merci d'avoir fait la recherche @surma !

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

adiramardiani picture adiramardiani  ·  4Commentaires

raffomania picture raffomania  ·  4Commentaires

facekapow picture facekapow  ·  5Commentaires

traviskaufman picture traviskaufman  ·  5Commentaires

ktodyruik picture ktodyruik  ·  5Commentaires