Maison > interface Web > tutoriel CSS > Comment forcer de manière fiable une refonte du DOM dans Chrome sur macOS ?

Comment forcer de manière fiable une refonte du DOM dans Chrome sur macOS ?

Mary-Kate Olsen
Libérer: 2024-12-26 21:10:15
original
819 Les gens l'ont consulté

How to Reliably Force a DOM Redraw in Chrome on macOS?

Forcer le redessinage du DOM sur Chrome/Mac : une solution aux problèmes de rendu

Dans certaines situations, Chrome sur Mac peut ne pas afficher correctement le HTML/CSS, malgré le balisage validité. Une solution courante consiste à modifier une propriété CSS et à récupérer le offsetHeight pour forcer un redessin. Cependant, cette méthode ne fonctionne plus efficacement sous Chrome/Mac.

Pour résoudre ce problème, une approche alternative qui fonctionne sur Chrome/Mac consiste à modifier temporairement la bordure de l'élément problématique :

$(el).css("border", "solid 1px transparent");
setTimeout(function()
    {
        $(el).css("border", "solid 0px transparent");
    }, 1000);
Copier après la connexion

Cela force l'élément à se repositionner, assurant un redessin. Cependant, un inconvénient est le retard impliqué, qui peut être visuellement gênant.

Une méthode encore plus fiable consiste à insérer un nœud de texte vide dans l'élément :

var forceRedraw = function(element){
    if (!element) { return; }
    var n = document.createTextNode(' ');
    var disp = element.style.display;
    element.appendChild(n);
    element.style.display = 'none';
    setTimeout(function(){
        element.style.display = disp;
        n.parentNode.removeChild(n);
    },20);
}
Copier après la connexion

Cette technique garantit un redessinez sans avoir besoin d’un saut visuel. En modifiant la propriété d'affichage et en insérant un nœud de texte, cela déclenche la redistribution du DOM et l'affichage précis de l'élément.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal