diff --git a/debug_toolbar/static/debug_toolbar/js/toolbar.js b/debug_toolbar/static/debug_toolbar/js/toolbar.js index aacffc2e6..7bd10454a 100644 --- a/debug_toolbar/static/debug_toolbar/js/toolbar.js +++ b/debug_toolbar/static/debug_toolbar/js/toolbar.js @@ -134,12 +134,21 @@ $('#djShowToolBarButton').on('mousedown', function (event) { var startPageY = event.pageY; var baseY = handle.offset().top - startPageY; + var windowHeight = $(window).height(); $(document).on('mousemove.djDebug', function (event) { // Chrome can send spurious mousemove events, so don't do anything unless the // cursor really moved. Otherwise, it will be impossible to expand the toolbar // due to djdt.handleDragged being set to true. if (djdt.handleDragged || event.pageY != startPageY) { - handle.offset({top: baseY + event.pageY}); + var top = baseY + event.clientY; + + if (top < 0) { + top = 0; + } else if (top + handle.height() > windowHeight) { + top = windowHeight - handle.height(); + } + + handle.css({top: top}); djdt.handleDragged = true; } });