第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在JavaScript中觸發(fā)窗口調(diào)整大小事件?

如何在JavaScript中觸發(fā)窗口調(diào)整大小事件?

慕森卡 2019-08-24 16:53:34
如何在JavaScript中觸發(fā)窗口調(diào)整大小事件?我在窗口調(diào)整大小時(shí)注冊(cè)了一個(gè)觸發(fā)器。我想知道如何觸發(fā)要調(diào)用的事件。例如,當(dāng)隱藏div時(shí),我希望調(diào)用我的觸發(fā)器函數(shù)。我發(fā)現(xiàn)window.resizeTo()可以觸發(fā)該功能,但還有其他解決方案嗎?
查看完整描述

3 回答

?
犯罪嫌疑人X

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊

在可能的情況下,我更喜歡調(diào)用函數(shù)而不是調(diào)度事件。如果您可以控制要運(yùn)行的代碼,則此方法很有效,但請(qǐng)參閱下面有關(guān)您不擁有代碼的情況。

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

在此示例中,您可以在doALoadOfStuff不調(diào)度事件的情況下調(diào)用該函數(shù)。

在現(xiàn)代瀏覽器中,您可以使用以下命令觸發(fā)事件

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

這在Internet Explorer中不起作用,您必須在其中進(jìn)行縮寫:

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

jQuery有這個(gè)trigger方法,它的工作方式如下:

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

并有警告:

雖然.trigger()模擬事件激活,但是使用合成的事件對(duì)象,它并不能完美地復(fù)制自然發(fā)生的事件。

您還可以模擬特定元素上的事件......

function simulateClick(id) {
  var event = new MouseEvent('click', {
    'view': window,
    'bubbles': true,
    'cancelable': true
  });

  var elem = document.getElementById(id); 

  return elem.dispatchEvent(event);}


查看完整回答
反對(duì) 回復(fù) 2019-08-24
?
當(dāng)年話下

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊

我相信這適用于所有瀏覽器:

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


查看完整回答
反對(duì) 回復(fù) 2019-08-24
?
慕雪6442864

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊

對(duì)RxJS的回應(yīng)

說(shuō)像Angular中的東西

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

如果需要手動(dòng)訂閱(或非角度)

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

由于我的初始startWith值可能不正確(發(fā)送更正)

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

在說(shuō)Angular(我可以..)

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


查看完整回答
反對(duì) 回復(fù) 2019-08-24
  • 3 回答
  • 0 關(guān)注
  • 1129 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)