복붙노트

[JQUERY] 어떻게 자바 스크립트에서 창 크기 조정 이벤트를 트리거하기 위해?

JQUERY

어떻게 자바 스크립트에서 창 크기 조정 이벤트를 트리거하기 위해?

해결법


  1. 1.가능하다면, 나는 이벤트 파견이 아닌 함수를 호출하는 것을 선호합니다. 당신은 당신이 실행하려는 코드를 제어 할 수 있습니다,하지만 당신은 코드를 소유하고 있지 않은 경우 아래를 참조 경우에 잘 작동합니다.

    가능하다면, 나는 이벤트 파견이 아닌 함수를 호출하는 것을 선호합니다. 당신은 당신이 실행하려는 코드를 제어 할 수 있습니다,하지만 당신은 코드를 소유하고 있지 않은 경우 아래를 참조 경우에 잘 작동합니다.

    window.onresize = doALoadOfStuff;
    
    function doALoadOfStuff() {
        //do a load of stuff
    }
    

    이 예제에서는 이벤트를 파견하지 않고 doALoadOfStuff 함수를 호출 할 수 있습니다.

    당신의 최신 브라우저에서는 사용하여 이벤트를 트리거 할 수 있습니다 :

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

    당신이 긴 형식을해야 볼 수있는 곳이 인터넷 익스플로러에서 작동하지 않습니다 :

    var resizeEvent = window.document.createEvent('UIEvents'); 
    resizeEvent.initUIEvent('resize', true, false, window, 0); 
    window.dispatchEvent(resizeEvent);
    

    jQuery를이 같이 작동 트리거 방법이 있습니다 :

    $(window).trigger('resize');
    

    그리고주의를 가지고 :

    또한 특정 요소에 대한 이벤트를 시뮬레이션 할 수 있습니다 ...

    function simulateClick(id) {
      var event = new MouseEvent('click', {
        'view': window,
        'bubbles': true,
        'cancelable': true
      });
    
      var elem = document.getElementById(id); 
    
      return elem.dispatchEvent(event);
    }
    

  2. 2.

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

  3. 3.jQuery를, 당신은 전화 트리거를 시도 할 수 있습니다 :

    jQuery를, 당신은 전화 트리거를 시도 할 수 있습니다 :

    $(window).trigger('resize');
    

  4. 4.원인이 경고를 모든 브라우저를 다루 pomber의 및 avetisk의 답변을 결합하지 :

    원인이 경고를 모든 브라우저를 다루 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);
    }
    

  5. 5.또한 (@Manfred 코멘트에서) IE에서 작동하는 순수 JS

    또한 (@Manfred 코멘트에서) IE에서 작동하는 순수 JS

    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);
    });
    

  6. 6.사실 위의 해결 방법 중 하나와 작업이를 얻을 수 없습니다. 내가 jQuery를 함께 이벤트를 결합하면 다음 아래와 같이 벌금을했다 :

    사실 위의 해결 방법 중 하나와 작업이를 얻을 수 없습니다. 내가 jQuery를 함께 이벤트를 결합하면 다음 아래와 같이 벌금을했다 :

    $(window).bind('resize', function () {
        resizeElements();
    }).trigger('resize');
    

  7. 7.다만

    다만

    $(window).resize();
    

    난 당신이 요구하고 오해 무엇을하지 않는 한 내가 ... 사용하는 것입니다.


  8. 8.RxJS와 응답

    RxJS와 응답

    각도의 말처럼 뭔가

    size$: Observable<number> = fromEvent(window, 'resize').pipe(
                debounceTime(250),
                throttleTime(300),
                mergeMap(() => of(document.body.clientHeight)),
                distinctUntilChanged(),
                startWith(document.body.clientHeight),
              );
    

    수동 등록이 필요한 경우 (또는하지 각도)

    this.size$.subscribe((g) => {
          console.log('clientHeight', g);
        })
    

    내 초기 startsWith 값이 잘못되었습니다 (보정 파견) 될 수 있기 때문에

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

    (내가 할 수있는 ..) 각도 말에

    <div class="iframe-container"  [style.height.px]="size$ | async" >..
    

  9. 9.나는이 모든 브라우저에서 작동한다고 생각 :

    나는이 모든 브라우저에서 작동한다고 생각 :

    var event;
    if (typeof (Event) === 'function') {
        event = new Event('resize');
    } else { /*IE*/
        event = document.createEvent('Event');
        event.initEvent('resize', true, true);
    }
    window.dispatchEvent(event);
    

  10. 10.이 라이브러리를 사용하여이 작업을 수행 할 수 있습니다. https://github.com/itmor/events-js

    이 라이브러리를 사용하여이 작업을 수행 할 수 있습니다. https://github.com/itmor/events-js

    const events = new Events();
    
    events.add({  
      blockIsHidden: () =>  {
        if ($('div').css('display') === 'none') return true;
      }
    });
    
    function printText () {
      console.log('The block has become hidden!');
    }
    
    events.on('blockIsHidden', printText);
    

  11. 11.window.resizeBy ()는 윈도우의하여 onResize 이벤트를 트리거합니다. 이것은 자바 스크립트 나 VBScript를 모두에서 작동합니다.

    window.resizeBy ()는 윈도우의하여 onResize 이벤트를 트리거합니다. 이것은 자바 스크립트 나 VBScript를 모두에서 작동합니다.

    window.resizeBy (-200, -200)처럼라는 window.resizeBy (xDelta, yDelta)는 200 픽셀로 페이지 200 픽셀을 축소하는 방법.

  12. from https://stackoverflow.com/questions/1818474/how-to-trigger-the-window-resize-event-in-javascript by cc-by-sa and MIT license