Как вызвать событие изменения размера окна в JavaScript?
Я зарегистрировал триггер на изменение размера окна. Я хочу знать, как я могу вызвать событие, которое будет вызвано. Например, когда скрыть div, я хочу, чтобы моя функция триггера была вызвана.
нашел window.resizeTo() может вызвать функцию, но есть ли другое решение?
8 ответов:
где это возможно, я предпочитаю вызывать функцию, а не отправлять событие. Это хорошо работает, если у вас есть контроль над кодом, который вы хотите запустить, но см. ниже для случаев, когда вы не владеете кодом.
window.onresize = doALoadOfStuff; function doALoadOfStuff() { //do a load of stuff }в этом примере вы можете вызвать
С помощью jQuery, вы можете попробовать позвонить триггер:
$(window).trigger('resize');
чистый JS, который также работает на IE (от @ Manfred комментарий)
var evt = window.document.createEvent('UIEvents'); evt.initUIEvent('resize', true, false, window, 0); window.dispatchEvent(evt);или угловых:
$timeout(function() { var evt = $window.document.createEvent('UIEvents'); evt.initUIEvent('resize', true, false, $window, 0); $window.dispatchEvent(evt); });
объединение ответов pomber и avetisk для покрытия всех браузеров и не вызывает предупреждений:
if (typeof(Event) === 'function') { // modern browsers window.dispatchEvent(new Event('resize')); } else { // for IE and other old browsers // causes deprecation warning on modern browsers var evt = window.document.createEvent('UIEvents'); evt.initUIEvent('resize', true, false, window, 0); window.dispatchEvent(evt); }
Я на самом деле не смог заставить это работать с любым из вышеперечисленных решений. Как только я связал событие с jQuery, то он работал нормально, как показано ниже:
$(window).bind('resize', function () { resizeElements(); }).trigger('resize');
window.resizeBy()вызовет событие onresize окна. Это работает в обоих Javascript или VBScript.
window.resizeBy(xDelta, yDelta)называлиwindow.resizeBy(-200, -200)чтобы уменьшить страницу 200px на 200px.
Comments