Existe-t-il un moyen (sans se lier à l'événement window.resize) de forcer un DIV flottant à se recentrer lorsque la fenêtre du navigateur est redimensionnée?Comment conserver un div flottant centré sur le redimensionnement de la fenêtre (jQuery/CSS)
Pour expliquer, j'imagine que le pseudocode ressemblerait à quelque chose comme:
div.left = 50% - (div.width/2)
div.top = 50% - (div.height/2)
MISE À JOUR
Ma requête ayant reçu une réponse ci-dessous, je voulais poster le résultat final de ma quête - une La méthode d'extension jQuery vous permet de centrer n'importe quel élément du bloc - espérons que cela aidera aussi quelqu'un d'autre.
jQuery.fn.center = function() {
var container = $(window);
var top = -this.height()/2;
var left = -this.width()/2;
return this.css('position', 'absolute').css({ 'margin-left': left + 'px', 'margin-top': top + 'px', 'left': '50%', 'top': '50%' });
}
Utilisation:
$('#mydiv').center();
Je ne pense pas que vous pouvez le faire sans au moins l'événement 'scroll' ... CSS centre les choses globalement dans la fenêtre, pas dans la zone actuellement visible, vous auriez à ajuster verticalement sur une page de défilement, Est-ce aussi un problème? –