Javascript window 调整大小事件前后

Javascript before and after events for window resize

onresize 可用于获知 window 已调整大小。 window调整大小之前有没有类似的notification/event。 我想在 window 调整大小开始之前对某些元素设置 will-change,然后在 window 调整大小后删除它。

没有在调整大小之前触发的事件。仅在调整大小时。大多数在 rezise 上执行某些操作的解决方案都使用 setTimeout 来检查自上次调整大小事件以来经过了一定时间。所以我猜你运气不好。

似乎没有直接的解决方案,但您可以通过使用 window.addEventListener("resize",yourFunction); 和一些全局变量的一些变通方法来实现开始|结束事件(这是一种变通方法,并不完美)。

//Accesible variables
var atStart = true;
var timer;

function yourFunction(){
    return ()=>{
        if(atStart){
          console.log("START");
          //Some code to be executed once at start
          atStart = false;
        }
        console.log("WHILE");
        //Some code to be executed while resizing

        if (timer) clearTimeout(timer);
        timer= setTimeout(atEnd, 500);
    }
}

function atEnd(){
    //Some code to be executed at the end of resizing
    //..well some 500ms after the end of resizing
    console.log("END")
    atStart = true;
}

window.addEventListener("resize",yourFunction());

希望对大家有所帮助。