Maison > interface Web > js tutoriel > JavaScript Snippet Force Un élément DOM redessine / Repainte

JavaScript Snippet Force Un élément DOM redessine / Repainte

Lisa Kudrow
Libérer: 2025-02-23 09:15:12
original
232 Les gens l'ont consulté

JavaScript Snippet Force a DOM Element Redraw/Repaint

JavaScript Snippet Force Un élément DOM redessine / Repainte

Extrait de code JavaScript pour forcer un élément DOM redessine / repeindre. Un peu hacky mais utile en dernier recours.
<span>var element = document.getElementById('id');
</span><span>var n = document.createTextNode(' ');
</span><span>var disp = element.style.display;  // don't worry about previous display style
</span>
element<span>.appendChild(n);
</span>element<span>.style.display = 'none';
</span>
<span>setTimeout(function(){
</span>    element<span>.style.display = disp;
</span>    n<span>.parentNode.removeChild(n);
</span><span>},20); // you can play with this timeout to make it as short as possible</span>
Copier après la connexion

en utilisant transit.js

Si vous utilisez un plugin de transition comme Transit.js, cela fonctionne également:
<span>$('#element')
</span>    <span>.transition({ x: '-500px', easing: 'snap', duration:'0' })
</span>    <span>.transition({ x: '0', easing: 'snap', duration:'0' })
</span>    <span>.css('z-index','10');</span>
Copier après la connexion

CSS:

#element <span>{
</span>     <span>position: absolute;
</span>     <span>right: '-500px';
</span>     z<span>-index: -1;
</span><span>}</span>
Copier après la connexion

Les questions fréquemment posées (FAQ) sur le forçage des éléments DOM redessinent / repeindre

Qu'est-ce que l'élément DOM redessine / repeindre dans JavaScript?

Dans JavaScript, un élément d'objet de document (DOM) redessier ou repeindre fait référence au processus de mise à jour de la représentation visuelle d'un élément sur une page Web. Cela est souvent nécessaire lorsque des modifications ont été apportées au style ou au contenu de l'élément. Le navigateur gère automatiquement la plupart des redestines et des repeintes, mais dans certains cas, vous devrez peut-être déclencher manuellement ce processus à l'aide de JavaScript. Cela peut être utile dans des situations où vous souhaitez vous assurer qu'un élément est mis à jour immédiatement, plutôt que d'attendre le prochain cycle de repeindre du navigateur.

Pourquoi devrais-je forcer un élément DOM à redessiner / repeindre?

Il y a plusieurs raisons pour lesquelles vous devrez peut-être forcer un élément DOM à redessiner ou à repeindre. Une raison courante est de réparer un problème visuel ou une anomalie qui s'est produit en raison d'un changement dans le style ou le contenu de l'élément. Une autre raison consiste à s'assurer qu'un élément est mis à jour immédiatement après un changement, plutôt que d'attendre le prochain cycle de repeindre du navigateur. Cela peut être particulièrement utile dans des situations où vous devez fournir des commentaires en temps réel à l'utilisateur, comme dans un jeu ou une application interactive.

Comment puis-je forcer un élément DOM à redessiner / repeindre en utilisant JavaScript?

Vous pouvez forcer un élément DOM à redessiner ou repeindre en utilisant JavaScript en apportant un petit changement temporaire au style ou au contenu de l'élément. Cela déclenchera le processus de repeindre du navigateur, ce qui entraînera une mise à jour de l'élément immédiatement. Voici un exemple simple:

var élément = document.getElementById ('myelement');
element.style.display = 'Aucun';
element.offsetheight; // Pas besoin de stocker cela n'importe où, la référence est suffisante
element.style.display = '';

Puis-je forcer un élément DOM à redessiner / repeindre en utilisant jQuery?

Oui, vous pouvez forcer un élément DOM à redessiner ou repeindre en utilisant jQuery. Le processus est similaire à la méthode JavaScript, mais avec quelques différences mineures. Voici un exemple:

var $ element = $ ('# myelement');
$ element.hide (). Show (0);

y a-t-il des problèmes ou des inconvénients potentiels pour forcer un élément DOM à redessiner / repeindre?

Tout en forçant un élément DOM à redessiner ou à repeindre peut être utile dans certaines situations, il est important d'être conscient qu'il peut ont également un impact négatif sur les performances. Les opérations de repensage et de repeinture peuvent être à forte intensité de ressources, en particulier pour les éléments complexes ou les grandes quantités de données. Par conséquent, il est généralement recommandé d'utiliser cette technique avec parcimonie, et uniquement lorsque cela est nécessaire.

Y a-t-il une différence entre un redessin et une repeinte en JavaScript?

Dans le contexte du JavaScript et du DOM, Un redessine et une repeinte se réfèrent essentiellement au même processus: mise à jour de la représentation visuelle d'un élément sur une page Web. Cependant, certains développeurs utilisent le terme «redestinement» pour se référer spécifiquement à des changements qui affectent la disposition de la page (comme la modification de la taille ou de la position d'un élément), tandis que «repeindre» fait référence aux changements qui affectent l'apparence d'un élément ( comme changer sa couleur ou son image d'arrière Éléments sur une page en apportant un petit changement temporaire au style ou au contenu de l'élément corporel. Cependant, cela devrait être fait avec prudence, car cela peut être très à forte intensité de ressources et peut entraîner des problèmes de performance.

Puis-je forcer un redessinage / repeindre une partie spécifique d'une page?

Oui, vous pouvez forcer une redessation ou repeindre une partie spécifique d'une page en ciblant un élément DOM ou un groupe d'éléments spécifiques. Cela peut être fait en utilisant JavaScript simple ou jQuery, comme indiqué dans les exemples ci-dessus.

Forcer un travail de redexage / repeindre dans tous les navigateurs?

La technique de forçage d'un redémarrage ou de repeindre par Faire un petit changement temporaire dans le style ou le contenu d'un élément devrait fonctionner dans tous les navigateurs modernes. Cependant, c'est toujours une bonne idée de tester votre code dans plusieurs navigateurs pour assurer la compatibilité.

Puis-je utiliser CSS pour forcer un redessin Redessiner ou repeindre en faisant un petit changement temporaire dans le style d'un élément. Cela peut être fait en ajoutant ou en supprimant une classe CSS, ou en modifiant directement les propriétés de style de l'élément. Cependant, cette méthode peut ne pas être aussi fiable que l'utilisation de JavaScript ou JQuery, car elle dépend du moteur de rendu CSS du navigateur.

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!

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