Skip to content

Commit

Permalink
Merge pull request #751 from Speedphoenix/fix-contextmenu-jump
Browse files Browse the repository at this point in the history
Fix menu jumping to top of screen and disappearing to the right
  • Loading branch information
bbrala authored Aug 24, 2021
2 parents 2ae293c + 0d8a4f8 commit 5b1d415
Showing 1 changed file with 16 additions and 2 deletions.
18 changes: 16 additions & 2 deletions src/jquery.contextMenu.js
Original file line number Diff line number Diff line change
Expand Up @@ -1579,18 +1579,32 @@
var $menu = opt.$menu;
var $menuOffset = $menu.offset();
var winHeight = $(window).height();
var winWidth = $(window).width();
var winScrollTop = $(window).scrollTop();
var winScrollLeft = $(window).scrollLeft();
var menuHeight = $menu.height();
var outerHeight = $menu.outerHeight();
var outerWidth = $menu.outerWidth();

if(menuHeight > winHeight){
$menu.css({
'height' : winHeight + 'px',
'overflow-x': 'hidden',
'overflow-y': 'auto',
'top': winScrollTop + 'px'
});
} else if(($menuOffset.top < winScrollTop) || ($menuOffset.top + menuHeight > winScrollTop + winHeight)){
} else if($menuOffset.top < winScrollTop){
$menu.css({
'top': winScrollTop + 'px'
'top': winScrollTop + 'px'
});
} else if($menuOffset.top + outerHeight > winScrollTop + winHeight){
$menu.css({
'top': $menuOffset.top - (($menuOffset.top + outerHeight) - (winScrollTop + winHeight)) + "px"
});
}
if($menuOffset.left + outerWidth > winScrollLeft + winWidth){
$menu.css({
'left': $menuOffset.left - (($menuOffset.left + outerWidth) - (winScrollLeft + winWidth)) + "px"
});
}
}
Expand Down

0 comments on commit 5b1d415

Please sign in to comment.