diff --git a/addons/website/static/src/js/content/snippets.animation.js b/addons/website/static/src/js/content/snippets.animation.js index 461fdc903dba0a3268af9347c167742a3af2b2ba..52a9923305eaf806ac79b8ff6559c437cf924992 100644 --- a/addons/website/static/src/js/content/snippets.animation.js +++ b/addons/website/static/src/js/content/snippets.animation.js @@ -1451,11 +1451,15 @@ registry.WebsiteAnimate = publicWidget.Widget.extend({ // We need to offset for the change in position from some animation. // So we get the top value by not taking CSS transforms into calculations. // Cookies bar might be opened and considered as a modal but it is - // not really one (eg 'discrete' layout), and should not be used as - // scrollTop value. - const $closestModal = $el.closest(".modal:visible"); - const scrollTop = $closestModal[0] ? - $closestModal.scrollTop() : this.$scrollingElement.scrollTop(); + // not really one when there is no backdrop (eg 'discrete' layout), + // and should not be used as scrollTop value. + const closestModal = $el.closest(".modal:visible")[0]; + let scrollTop = this.$scrollingElement[0].scrollTop; + if (closestModal) { + scrollTop = closestModal.classList.contains("s_popup_no_backdrop") ? + closestModal.querySelector(".modal-content").scrollTop : + closestModal.scrollTop; + } const elTop = this._getElementOffsetTop(el) - scrollTop; let visible; const footerEl = el.closest('.o_footer_slideout'); diff --git a/addons/website/static/src/snippets/s_popup/001.scss b/addons/website/static/src/snippets/s_popup/001.scss index 7eb56e1a93d2f85aa01b8918d6c88090d8cbee1d..b591d30c7796aeb804c0ccaf82bc29ce74db365d 100644 --- a/addons/website/static/src/snippets/s_popup/001.scss +++ b/addons/website/static/src/snippets/s_popup/001.scss @@ -64,7 +64,8 @@ .modal-content { max-height:100%; - overflow: auto; + overflow-y: auto; + overflow-x: hidden; } } }