diff --git a/core/modules/outside_in/js/off-canvas.es6.js b/core/modules/outside_in/js/off-canvas.es6.js
index 9021919cf5..75a6508218 100644
--- a/core/modules/outside_in/js/off-canvas.es6.js
+++ b/core/modules/outside_in/js/off-canvas.es6.js
@@ -71,7 +71,7 @@
       settings.dialogClass += ' ui-dialog-off-canvas';
       // @see http://api.jqueryui.com/position/
       settings.position = {
-        my: 'left top',
+        my: `${Drupal.offCanvas.getEdge()} top`,
         at: `${Drupal.offCanvas.getEdge()} top`,
         of: window,
       };
@@ -80,7 +80,8 @@
        * Applies initial height to dialog based on window height.
        * @see http://api.jqueryui.com/dialog for all dialog options.
        */
-      settings.height = $(window).height();
+      settings.height = $(window).outerHeight();
+      settings.maxHeight = '100%';
     },
 
     /**
diff --git a/core/modules/outside_in/js/off-canvas.js b/core/modules/outside_in/js/off-canvas.js
index 8d0ae3521f..22d961e531 100644
--- a/core/modules/outside_in/js/off-canvas.js
+++ b/core/modules/outside_in/js/off-canvas.js
@@ -29,12 +29,13 @@
       settings.dialogClass += ' ui-dialog-off-canvas';
 
       settings.position = {
-        my: 'left top',
+        my: Drupal.offCanvas.getEdge() + ' top',
         at: Drupal.offCanvas.getEdge() + ' top',
         of: window
       };
 
-      settings.height = $(window).height();
+      settings.height = $(window).outerHeight();
+      settings.maxHeight = '100%';
     },
     beforeClose: function beforeClose(_ref2) {
       var $element = _ref2.$element;
