summaryrefslogtreecommitdiff
path: root/assets/js/src/Dropdown.js
diff options
context:
space:
mode:
Diffstat (limited to 'assets/js/src/Dropdown.js')
-rw-r--r--assets/js/src/Dropdown.js18
1 files changed, 12 insertions, 6 deletions
diff --git a/assets/js/src/Dropdown.js b/assets/js/src/Dropdown.js
index 81ce2509..146a3c17 100644
--- a/assets/js/src/Dropdown.js
+++ b/assets/js/src/Dropdown.js
@@ -14,25 +14,31 @@ Dropdown.prototype.listen = function() {
self.close();
var submenu = $(this).next('ul');
- var submenuHeight = 240;
var offset = $(this).offset();
- var height = $(this).height();
// Clone the submenu outside of the column to avoid clipping issue with overflow
$("body").append(jQuery("<div>", {"id": "dropdown"}));
submenu.clone().appendTo("#dropdown");
var clone = $("#dropdown ul");
- clone.css('left', offset.left);
+ clone.addClass('dropdown-submenu-open');
+
+ var submenuHeight = clone.outerHeight();
+ var submenuWidth = clone.outerWidth();
if (offset.top + submenuHeight - $(window).scrollTop() > $(window).height()) {
- clone.css('top', offset.top - submenuHeight - height);
+ clone.css('top', offset.top - submenuHeight - 5);
}
else {
- clone.css('top', offset.top + height);
+ clone.css('top', offset.top + $(this).height());
}
- clone.addClass('dropdown-submenu-open');
+ if (offset.left + submenuWidth > $(window).width()) {
+ clone.css('left', offset.left - submenuWidth + $(this).outerWidth());
+ }
+ else {
+ clone.css('left', offset.left);
+ }
});
$(document).on('click', '.dropdown-submenu-open li', function(e) {