java 窗口大小改变事件_onresize

onresize 事件通过监听对象的高和宽,其中任何一个属性发生变化都会触发 onresize 事件。

楼上提到的解决方法存在问题。

// 只能解决楼上提到触发两次的情况,实际浏览器的 resize 事件可能会触发 n 次,持续时间并不一定是 100 毫秒,例如用户拖动浏览器的边框,以下代码会执行多次 callback 事件;

function windowResizeEvent(callback) {

var firstFire = null;

window.onresize = function () {

if(firstFire === null) {

firstFire = setTimeout(function() {

firstFire = null;

callback();

}, 100);

}

}

}

// 改进代码

function windowResizeEvent(callback) {

window.onresize = function() {

var target = this;

if (target.resizeFlag) {

clearTimeout(target.resizeFlag);

}

target.resizeFlag = setTimeout(function() {

callback();

target.resizeFlag = null;

}, 100);

}

}

除了 window 对象,其他 html 标签好像并不支持 onresize 事件,定义了之后并不会触发。

碧霜寒冰

碧霜寒冰

764***220@qq.com2年前 (2018-12-19)


版权声明:本文为weixin_36122351原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。