Only disable animation when element is displayed

The transitionend event will not fire when display=none. This can
prevent the initial animation for hiding the controlbar in some cases.
This commit is contained in:
Samuel Mannehed 2018-03-08 16:52:53 +01:00
parent d7a575a2c8
commit 06309160ee
1 changed files with 8 additions and 3 deletions

View File

@ -549,10 +549,15 @@ var UI = {
},
toggleControlbarSide: function () {
// Temporarily disable animation to avoid weird movement
// Temporarily disable animation, if bar is displayed, to avoid weird
// movement. The transitionend-event will not fire when display=none.
var bar = document.getElementById('noVNC_control_bar');
bar.style.transitionDuration = '0s';
bar.addEventListener('transitionend', function () { this.style.transitionDuration = ""; });
var barDisplayStyle = window.getComputedStyle(bar).display;
if (barDisplayStyle !== 'none') {
bar.style.transitionDuration = '0s';
bar.addEventListener('transitionend', function () {
this.style.transitionDuration = ""; });
}
var anchor = document.getElementById('noVNC_control_bar_anchor');
if (anchor.classList.contains("noVNC_right")) {