У вас в коде есть такие места:
//this.popupWindow.style.width = (imgWidth +20)+'px';
//this.popupWindow.style.height = (imgHeight+20)+'px';
this.popupWindow.style.width = 'auto';
this.popupWindow.style.height = 'auto';
Конечно вслепую разбираться практически нереально, но вы не пробовали раскомментировать первые строчки и закомментировать две последние? Мне кажется, что происходит такое из-за того, что auto ужимает ваш элемент от верха экрана до текущего места нахождения курсора.