我正在使用ngDialog角度指令并在Chrome中进行测试。如果您查看DOM(使用Chrome工具),您会注意到当您关闭ngDialog时,它将保留在" ngdialog-closing"状态直到鼠标移动停止。在此期间,DIV叠加层保持打开状态,您无法点击其背后的任何内容。
http://likeastore.github.io/ngDialog
https://github.com/likeastore/ngDialog/blob/master/js/ngDialog.js
有谁知道这是为什么以及如何解决这个问题?
答案 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);
}