UNPKG

948 BJavaScriptView Raw
1import { temporarilyNotSupport } from '../../utils';
2import { CallbackManager } from '../../utils/handler';
3const callbackManager = new CallbackManager();
4const resizeListener = () => {
5 callbackManager.trigger({
6 windowWidth: window.screen.width,
7 windowHeight: window.screen.height
8 });
9};
10/**
11 * 设置窗口大小,该接口仅适用于 PC 平台,使用细则请参见指南
12 */
13export const setWindowSize = temporarilyNotSupport('setWindowSize');
14/**
15 * 监听窗口尺寸变化事件
16 */
17export const onWindowResize = callback => {
18 callbackManager.add(callback);
19 if (callbackManager.count() === 1) {
20 window.addEventListener('resize', resizeListener);
21 }
22};
23/**
24 * 取消监听窗口尺寸变化事件
25 */
26export const offWindowResize = callback => {
27 callbackManager.remove(callback);
28 if (callbackManager.count() === 0) {
29 window.removeEventListener('resize', resizeListener);
30 }
31};