Центрирование xul диалога на экране
-
05-07-2019 - |
Вопрос
В диалоговом окне я изменяю размеры некоторых изображений и затем принудительно заставляю окно sizeToContent. Затем я хочу, чтобы диалог центрировался на экране. Как я могу это сделать? Р>
Решение
Конечным результатом будет окно, которое перемещается само по себе? Пожалуйста, не делайте это слишком раздражающим:)
В любом случае вам придется делать это вручную, используя window.moveTo
и различные свойства screen
(см. https://developer.mozilla.org/en/DOM/window )
Вот интересный пример, хотя он не центрирует окно, он обеспечивает его видимость: http://www.koders.com/javascript/fid3F51B87DFD457428278627805CCA8D39ADC13455.aspx? s = окно # L3 р>
Другие советы
Я также искал и искал в MDC все, что могло бы его центрировать, но ничего не нашел, поэтому я создал это! Это будет работать как с окном, так и с диалогом.
var w=(screen.availWidth/2)-(document.getElementById('windowID').width/2);
var h=(screen.availHeight/2)-(document.getElementById('windowID').height/2);
window.moveTo(w,h);
Единственное, что вы должны изменить - это windowID
значение идентификатора вашего окна.
Он будет работать на всех разрешениях экрана, так как он принимает общую ширину и высоту экрана, а затем делит его пополам, таким образом, давая центр экрана, затем вычитает ваши настройки ширины и высоты, чтобы принять их во внимание, но делит их и на половину, чтобы сместить окно без смещения не будет отцентрировано.
Надеюсь, это помогло!
Элемент <dialog>
определяет для вас удобные методы moveToAlertPosition () и centerWindowOnScreen (), а также копирует их в глобальную область видимости, поэтому вам не нужно определять их с помощью document.documentElement.