transitionend事件判断是opacity是1还是0

在使用 transitionend 事件时,你可以通过比较元素的当前 opacity 值来判断它是变为完全透明(0)还是完全不透明(1)。下面是一个示例代码段,展示了如何监听 transitionend 事件并判断 opacity 的最终状态:

element.addEventListener('transitionend', function(event) {
    // 确保事件目标是我们关心的元素并且是 opacity 过渡结束
    if (event.target === element && event.propertyName === 'opacity') {
        // 判断 opacity 的最终值
        if (parseFloat(element.style.opacity) === 1) {
            console.log('Opacity transition ended at 1 (fully opaque)');
            // 在这里执行 opacity 达到 1 时的逻辑
        } else if (parseFloat(element.style.opacity) === 0) {
            console.log('Opacity transition ended at 0 (fully transparent)');
            // 在这里执行 opacity 达到 0 时的逻辑
        }
    }
});

这段代码中,event.propertyName 用来检查哪个 CSS 属性的过渡刚刚结束,确保我们只在 opacity 过渡结束后执行逻辑。然后,通过 parseFloat(element.style.opacity) 获取元素的当前不透明度,并与 1 或 0 比较,从而判断过渡的最终状态。

请注意,如果你是通过 CSS 类来控制 opacity 的变化,而非直接修改 element.style.opacity,你可能需要在 CSS 中定义这些类,并且在 JavaScript 中检查元素的计算样式(getComputedStyle)来获取实际的 opacity 值。