diff --git a/addons/website/static/src/snippets/s_table_of_content/000.js b/addons/website/static/src/snippets/s_table_of_content/000.js index 03083afa004..2b7b0ade23a 100644 --- a/addons/website/static/src/snippets/s_table_of_content/000.js +++ b/addons/website/static/src/snippets/s_table_of_content/000.js @@ -28,7 +28,7 @@ const TableOfContent = publicWidget.Widget.extend({ extraMenuUpdateCallbacks.splice(indexCallback, 1); } this.$el.css('top', ''); - this.$el.find('.s_table_of_content_navbar').css('top', ''); + this.$el.find('.s_table_of_content_navbar').css({top: '', maxHeight: ''}); this._super(...arguments); }, @@ -51,6 +51,7 @@ const TableOfContent = publicWidget.Widget.extend({ this.$el.css('top', isHorizontalNavbar ? position : ''); this.$el.find('.s_table_of_content_navbar').css('top', isHorizontalNavbar ? '' : position + 20); position += isHorizontalNavbar ? this.$el.outerHeight() : 0; + this.$el.find('.s_table_of_content_navbar').css('maxHeight', isHorizontalNavbar ? '' : `calc(100vh - ${position + 40}px)`); if (this.previousPosition !== position) { new ScrollSpy(this.$scrollingElement, { target: this.$el.find('.s_table_of_content_navbar'), diff --git a/addons/website/static/src/snippets/s_table_of_content/000.scss b/addons/website/static/src/snippets/s_table_of_content/000.scss index 4f4b83377f6..4b93cc0da7b 100644 --- a/addons/website/static/src/snippets/s_table_of_content/000.scss +++ b/addons/website/static/src/snippets/s_table_of_content/000.scss @@ -4,6 +4,9 @@ &.s_table_of_content_horizontal_navbar, &.s_table_of_content_vertical_navbar .s_table_of_content_navbar { @include o-position-sticky($top: 0px); } + &.s_table_of_content_vertical_navbar .s_table_of_content_navbar { + overflow: auto; + } } &:not(.s_table_of_content_navbar_sticky) { &, .s_table_of_content_navbar {