ngDialog 保持关闭状态,直到鼠标移动停止
ngDialog stays in closing state until mouse movement stops
我正在使用 ngDialog angular 指令并在 Chrome 中进行测试。如果您查看 DOM(使用 Chrome 工具),您会注意到当您关闭 ngDialog 时它将保持 "ngdialog-closing" 状态,直到鼠标移动停止。 DIV 叠加层在此期间保持打开状态,您无法单击它后面的任何内容。
http://likeastore.github.io/ngDialog
https://github.com/likeastore/ngDialog/blob/master/js/ngDialog.js
有谁知道这是为什么以及如何解决这个问题?
经过一番研究,这似乎是由 CSS 动画引起的。当我完全禁用它们时,我没有遇到这个问题。
这似乎可以解决问题。我用设置为动画长度的超时替换了 animationend 事件的绑定。 Chrome 中的 UX 有了这个就好多了。
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);
}
我正在使用 ngDialog angular 指令并在 Chrome 中进行测试。如果您查看 DOM(使用 Chrome 工具),您会注意到当您关闭 ngDialog 时它将保持 "ngdialog-closing" 状态,直到鼠标移动停止。 DIV 叠加层在此期间保持打开状态,您无法单击它后面的任何内容。
http://likeastore.github.io/ngDialog
https://github.com/likeastore/ngDialog/blob/master/js/ngDialog.js
有谁知道这是为什么以及如何解决这个问题?
经过一番研究,这似乎是由 CSS 动画引起的。当我完全禁用它们时,我没有遇到这个问题。
这似乎可以解决问题。我用设置为动画长度的超时替换了 animationend 事件的绑定。 Chrome 中的 UX 有了这个就好多了。
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);
}