diff --git a/core/misc/dropbutton/dropbutton.js b/core/misc/dropbutton/dropbutton.js
index ebad07a..4c48f72 100644
--- a/core/misc/dropbutton/dropbutton.js
+++ b/core/misc/dropbutton/dropbutton.js
@@ -27,7 +27,27 @@
    */
   function dropbuttonClickHandler(e) {
     e.preventDefault();
-    $(e.target).closest('.dropbutton-wrapper').toggleClass('open');
+    // Dropbutton object.
+    var $this = $(e.target).closest('.dropbutton-wrapper');
+    // Save offset parent, if element is absolute positioned, we need a relative
+    // position for calculation.
+    var $parent = $this.offsetParent();
+    // Forgot parent, if parent is the main HTML object.
+    if ($parent[0] == jQuery('html')[0]) { $parent = $this; }
+
+    // Open the dropbutton.
+    $this.toggleClass('open');
+
+    // Calculate scrolling if opened dropbutton sticking out of viewport.
+    if ($parent.position()) {
+      if ($parent.position().top + $this.height() > $(window).scrollTop() + (window.innerHeight)) {
+        $('html, body').animate({
+            scrollTop: $parent.position().top - (window.innerHeight) + $this.height() + 10
+          },
+          100
+        );
+      }
+    }
   }
 
   /**
