Centra una finestra di dialogo xul sullo schermo
-
05-07-2019 - |
Domanda
In una finestra di dialogo, ridimensiono alcune immagini e quindi forzo la finestra a sizeToContent. Quindi, voglio che la finestra di dialogo si centri sullo schermo. Come posso fare questo?
Soluzione
Il risultato finale sarebbe una finestra che si muove da sola? Per favore, non renderlo troppo fastidioso :)
Ad ogni modo, dovrai farlo manualmente usando window.moveTo
e varie screen
proprietà (vedi https://developer.mozilla.org/en/DOM/window )
Ecco un esempio interessante, anche se non centra la finestra, assicura che sia visibile: http://www.koders.com/javascript/fid3F51BCA827D80 s = finestra # L3
Altri suggerimenti
Ho anche cercato in giro e ho cercato MDC per qualsiasi cosa che potesse centrarlo ma non ho trovato nulla, quindi ho creato questo! Funzionerà sia sulla finestra che sul dialogo.
var w=(screen.availWidth/2)-(document.getElementById('windowID').width/2);
var h=(screen.availHeight/2)-(document.getElementById('windowID').height/2);
window.moveTo(w,h);
L'unica cosa che devi modificare è windowID
al valore ID della tua finestra.
Funzionerà su tutte le risoluzioni dello schermo in quanto prende la larghezza e l'altezza totali dello schermo, quindi lo divide a metà dando così il centro dello schermo, quindi sottrae le impostazioni di larghezza e altezza per tenerne conto, ma le divide anche a metà per compensare la finestra come senza l'offset non sarà centrata.
Spero che questo abbia aiutato!
Un elemento <dialog>
definisce i metodi di convenienza moveToAlertPosition () e centerWindowOnScreen () e li copia anche nell'ambito globale in modo da non doverli definire con document.documentElement.