ngDialog保持关闭状态,直到鼠标移动停止

时间:2015-08-26 12:23:47

标签: angularjs ng-dialog

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

http://likeastore.github.io/ngDialog

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

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

1 个答案:

答案 0 :(得分:2)

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

这似乎可以解决问题。我将animationend事件的绑定替换为设置为动画长度的超时。 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);
}