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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

檢測變量何時在javascript中發(fā)生更改

檢測變量何時在javascript中發(fā)生更改

慕斯709654 2021-04-23 17:15:21
我有一個chrome應(yīng)用程序,我想在分辨率更改時正確調(diào)整大?。ㄅc屏幕寬度成比例的尺寸)。我編寫了一個函數(shù),可以使用正確的尺寸重新繪制應(yīng)用程序,現(xiàn)在我只想在需要時執(zhí)行它。分辨率的更改會導(dǎo)致screen.width發(fā)生更改,但是(由于它們與不同的事物有關(guān),所以可能就不足為奇了),不會觸發(fā)“調(diào)整大小”事件,據(jù)我所知,沒有觸發(fā)任何事件。我知道Proxy物件(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy),因此我編寫了一些代碼來檢測何時設(shè)置了變量并執(zhí)行了回調(diào),這似乎可行,但在分辨率更改的情況下不起作用。因此,我在線搜索并嘗試使用此方法https://gist.github.com/eligrey/384583(本質(zhì)上,這是在類似主題的幾個stackoverflow問題中提供的答案,實際上是我最初產(chǎn)生的結(jié)果,盡管缺乏抽象的含義代理對象提供)。這似乎也可行(從某種意義上來說,如果我說在完成screen.watch(“ width”,()=> console.log(“ hello”))之后手動設(shè)置screen.width);然后再執(zhí)行screen.width = 100 ;我的回調(diào)已執(zhí)行)。但不是在分辨率更改的情況下(實際上,也許最重要的是,分配此觀察者似乎阻止了screen.width的分配)。我有三個問題1)當(dāng)我分配一個混亂的觀察者/代理時發(fā)生了什么。2)我如何才能知道瀏覽器在此詳細(xì)級別上的工作(是什么發(fā)送觸發(fā)來更改screen.width?我猜是操作系統(tǒng),這是什么樣的)3)有沒有更好的方法來實現(xiàn)我最初想要的功能(調(diào)整chrome應(yīng)用程序的大小)。通常,我對問題1)感興趣,并且不再關(guān)心3)。要復(fù)制我的問題,在Firefox或Chrome中打開新標(biāo)簽頁轉(zhuǎn)到開發(fā)者控制臺。檢查screen.width,更改分辨率,觀察screen.width變化從https://gist.github.com/eligrey/384583復(fù)制并粘貼代碼做screen.watch(“ width”,(id,oldval,newval)=> {console.log(“ hello”); return newval;});做screen.width = 100; 并觀察到您好已記錄并且screen.width設(shè)置為100更改分辨率,觀察未設(shè)置screen.width。編輯-正如Bertrand回答后所揭示的那樣,調(diào)整大小事件實際上可能會在分辨率更改時觸發(fā),但這似乎是對分辨率更改的響應(yīng),如果窗口較小,則強制窗口邊界變小,然后screen.width可以更改而無需觸發(fā)調(diào)整大小事件。
查看完整描述

2 回答

?
白衣非少年

TA貢獻(xiàn)1155條經(jīng)驗 獲得超0個贊

根據(jù)Mozilla的說法,屏幕調(diào)整大小事件僅在window對象上觸發(fā)。因此,您應(yīng)該將監(jiān)聽器添加到window而不是screen

window.addEventListener('resize', yourfunc)

經(jīng)過Windows 10的測試,它在Chrome上的魅力十足。值得一提的是,瀏覽器計算出的實際屏幕尺寸使用的是屏幕分辨率縮放比例。

例如,如果您使用的是1920x1080,請縮放100%:

  • 傳遞到3840x2160時,縮放200%將輸出1920x1080的瀏覽器窗口,并且resize似乎未觸發(fā)

  • 傳遞到150%縮放將輸出1280x720的瀏覽器窗口resize并被觸發(fā)

盡管如此,還是有一個陷阱。僅當(dāng)屏幕分辨率更新實際觸發(fā)瀏覽器窗口大小調(diào)整時,才會檢測到屏幕分辨率更新??紤]到瀏覽器窗口的窗口化/全屏初始狀態(tài)以及屏幕尺寸的變大/變大,這并不是很明顯。


查看完整回答
反對 回復(fù) 2021-04-29
  • 2 回答
  • 0 關(guān)注
  • 190 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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