J'ai deux éléments div positionnés de manière absolue qui se chevauchent. Tous deux ont des valeurs de z-index définies par css. J'utilise l'option translate3d
webkit transform pour animer ces éléments hors de l'écran, puis de nouveau sur l'écran. Après la transformation, les éléments ne respectent plus leurs paramètres. z-index
valeurs.
Quelqu'un peut-il expliquer ce qu'il advient de l'indice z et de l'ordre des éléments div lorsque j'effectue une transformation webkit sur ceux-ci ? Et ce que je peux faire pour conserver l'ordre de superposition des éléments div ?
Voici quelques informations supplémentaires sur la manière dont je procède à la transformation.
Avant la transformation, chaque élément reçoit ces deux valeurs de transition webkit définies via css (j'utilise jQuery pour faire le .css()
appels de fonction :
element.css({ '-webkit-transition-duration': duration + 's' });
element.css({ '-webkit-transition-property': '-webkit-transform' });
L'élément est ensuite animé à l'aide de la transformation translate3d -webkit-transform :
element.css({ '-webkit-transform': 'translate3d(' + hwDelta + 'px, 0, -1px)' });
Entre-temps, j'ai essayé de régler le troisième paramètre de l'option translate3d
à plusieurs valeurs différentes pour essayer de reproduire l'ordre des piles dans l'espace 3D, mais sans succès.
De plus, les navigateurs iPhone/iPad et Android sont les navigateurs cibles sur lesquels ce code doit fonctionner. Les deux supportent les transitions webkit.
0 votes
Pouvez-vous poster un lien pour voir l'exemple ?
1 votes
J'ai rencontré le même problème. J'ai une balise <iframe> avec un élément intérieur de style "-webkit-transform : translate3d(0,0,0)" pour forcer l'accélération 3D. Il s'avère que le cadre extérieur avec un z-index plus élevé est toujours caché par l'élément iframe intérieur. Comme le visuel est caché, je peux "cliquer" sur l'élément extérieur invisible. Cela ne se produit que dans Mobile Safari.
0 votes
J'ai passé 10 heures à comprendre que c'était ce qui faisait que mon code ne fonctionnait pas. Ugh