繁体   English   中英

在 ResizeObserver 事件之后

[英]After ResizeObserver event

我有一个 resizeObserver (https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver ) 监控 div 大小的变化。 但是,在调整大小事件期间,我想显示 div 的边框,然后在调整大小后让它消失。

为此,我有一个 .tempBorder class 将被添加到调整大小事件中:

Css:

.tempBorder {
        border: 1px solid red;
    }

Javascript:

var chartResizer = document.getElementById('chartResizer');
    var chartResizerResizeObserver = new ResizeObserver(() => {
        chartResizer.classList.add("tempBorder");
    }
    ).observe(chartResizer);

但我无法使用chartResizer.classList.remove("tempBorder"); 因为似乎没有我能找到的在调整大小完成后触发的事件。

我知道这可能是故意的,因为在调整大小时会连续触发 after 事件,所以我想知道在其中使用setTimeOut是否是更好的解决方案?

所以像这样:

 var chartResizer = document.getElementById('chartResizer');
    var chartResizerResizeObserver = new ResizeObserver(() => {
        chartResizer.classList.add("tempBorder");
        myChart.resize();
        setTimeout(function(){
            chartResizer.classList.remove("tempBorder");
        }, 1000);
    }
    ).observe(chartResizer);

我是否必须像第二个示例那样做一些事情,或者是否有更有效的方法来通过resizeObserver的事件after实现我想要的?

称呼

chartResizer.classList.remove("tempBorder");

mouseup事件上

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM