3

我正在使用 ngDialog 角度指令并在 Chrome 中进行测试。如果您查看 DOM(使用 Chrome 工具),您会注意到当您关闭 ngDialog 时,它将保持“ngdialog-closing”状态,直到鼠标移动停止。DIV 覆盖在此期间保持打开状态,您无法单击其后面的任何内容。

http://likeastore.github.io/ngDialog

https://github.com/likeastore/ngDialog/blob/master/js/ngDialog.js

有谁知道这是为什么以及如何解决这个问题?

4

1 回答 1

2

经过一番研究,这似乎是由 CSS 动画引起的。当我完全禁用它们时,我没有遇到这个问题。

这似乎可以解决问题。我用设置为动画长度的超时替换了动画结束事件的绑定。Chrome 中的用户体验在这方面要好得多。

if (animationEndSupport && !options.disableAnimation) {
    scope.$destroy();
    $timeout(function () {
        privateMethods.closeDialogElement($dialog, value);
    }, 500);
    //$dialog.unbind(animationEndEvent).bind(animationEndEvent, function () {
    //    privateMethods.closeDialogElement($dialog, value);
    //});
    $dialog.addClass('ngdialog-closing');
} else {
    scope.$destroy();
    privateMethods.closeDialogElement($dialog, value);
}
于 2015-08-26T12:54:41.037 回答