javascript - 过渡动画错误

标签 javascript css animation

如果我在 showAnimateWin 属性 offsetHeight 中使用,动画工作。 example

function end( ) {

    var  top = ( window.innerHeight - win.clientHeight ) / 2,
        left = ( window.innerWidth - win.clientWidth ) / 2;

    win.style.top = top + "px";
    win.style.left = left + "px";
}

function showAnimateWin( ) {
        win.offsetHeight ;//here

        win.classList.add("modal-window-animate");
        end();
 };

如果我删除 win.offsetHeight,动画只工作一次。 example

function showAnimateWin( ) { 
        win.classList.add("modal-window-animate");
        end();
 };

为什么没有 win.offsetHeight 就不能工作?

最佳答案

原因可能是因为 win.offsetHeight; 导致该方法等待几毫秒才能再次开始转换。如果您使用 alert(1); 而不是 win.offsetHeight; 它仍然有效。在开始另一个动画之前,您需要等待过渡完成。

更新:Fiddle Link

这应该没有任何延迟地工作(检查 fiddle ):

window.setTimeout(function() {
        showAnimateWin();
    }, 25);

关于javascript - 过渡动画错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27798262/

相关文章:

javascript - react-native-navigation V3 使应用程序崩溃

javascript - 使用 html 或 javascript 实现 F5 键

css - 如何在 Rails 5 应用程序中使用 Bootstrap 4 Gem 修改默认外观

c# - 是否可以在 winrt 中创建自定义转换? (如 ContentThemeTransition)

ios - SwiftUI |动画此路径形状

javascript - 这个新的重复拖放指令有什么问题?

javascript - 当用户点击时启动 flash 游戏

html - 如何在 jquery LightSlider 中使用居中图像设置固定高度?

html - 页脚背景重叠内容

iphone - 动画 UILabel 尺寸减小