Как вызвать событие изменения размера окна в JavaScript?



Я зарегистрировал триггер на изменение размера окна. Я хочу знать, как я могу вызвать событие, которое будет вызвано. Например, когда скрыть div, я хочу, чтобы моя функция триггера была вызвана.



нашел window.resizeTo() может вызвать функцию, но есть ли другое решение?

863   8  

8 ответов:

где это возможно, я предпочитаю вызывать функцию, а не отправлять событие. Это хорошо работает, если у вас есть контроль над кодом, который вы хотите запустить, но см. ниже для случаев, когда вы не владеете кодом.

window.onresize = doALoadOfStuff;

function doALoadOfStuff() {
    //do a load of stuff
}

в этом примере вы можете вызвать

window.dispatchEvent(new Event('resize'));

С помощью 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).resize();

это то, что я использую... если я правильно понимаю, о чем ты просишь.

window.resizeBy() вызовет событие onresize окна. Это работает в обоих Javascript или VBScript.

window.resizeBy(xDelta, yDelta) называли window.resizeBy(-200, -200) чтобы уменьшить страницу 200px на 200px.

Comments

    Ничего не найдено.