From 6f340174d32797f0baa2398bb58d7c540298c90c Mon Sep 17 00:00:00 2001 From: Guido Oliveira Date: Wed, 24 Mar 2021 08:29:37 -0300 Subject: [PATCH 1/4] fix content moving when cart is open --- .../darkswarm/directives/body_scroll.js.coffee | 10 ++++++++-- app/assets/stylesheets/darkswarm/ui.scss | 4 ---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/assets/javascripts/darkswarm/directives/body_scroll.js.coffee b/app/assets/javascripts/darkswarm/directives/body_scroll.js.coffee index 183d828d03..2954bb4647 100644 --- a/app/assets/javascripts/darkswarm/directives/body_scroll.js.coffee +++ b/app/assets/javascripts/darkswarm/directives/body_scroll.js.coffee @@ -4,6 +4,12 @@ Darkswarm.directive "bodyScroll", ($rootScope, BodyScroll) -> link: (scope, elem, attrs) -> $rootScope.$on "toggleBodyScroll", -> if BodyScroll.disabled - elem.addClass "disable-scroll" + document.body.style.top = "-#{window.scrollY}px" + document.body.style.position = 'fixed' + document.body.style.overflowY = 'scroll' else - elem.removeClass "disable-scroll" + scrollY = parseInt(document.body.style.top) + document.body.style.position = '' + document.body.style.top = '' + document.body.style.overflowY = '' + window.scrollTo(0, scrollY * -1) if scrollY diff --git a/app/assets/stylesheets/darkswarm/ui.scss b/app/assets/stylesheets/darkswarm/ui.scss index c13c51f024..b2177013cc 100644 --- a/app/assets/stylesheets/darkswarm/ui.scss +++ b/app/assets/stylesheets/darkswarm/ui.scss @@ -165,7 +165,3 @@ a.button.large { .flex { display: flex; } - -.disable-scroll { - overflow: hidden; -} From f004cc5b91d082a3af1724db1c1def138492f8aa Mon Sep 17 00:00:00 2001 From: Guido Oliveira Date: Mon, 29 Mar 2021 14:14:39 -0300 Subject: [PATCH 2/4] fix content resizing in some browsers --- .../javascripts/darkswarm/directives/body_scroll.js.coffee | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/assets/javascripts/darkswarm/directives/body_scroll.js.coffee b/app/assets/javascripts/darkswarm/directives/body_scroll.js.coffee index 2954bb4647..c2f8429ff2 100644 --- a/app/assets/javascripts/darkswarm/directives/body_scroll.js.coffee +++ b/app/assets/javascripts/darkswarm/directives/body_scroll.js.coffee @@ -7,9 +7,11 @@ Darkswarm.directive "bodyScroll", ($rootScope, BodyScroll) -> document.body.style.top = "-#{window.scrollY}px" document.body.style.position = 'fixed' document.body.style.overflowY = 'scroll' + document.body.style.width = '100%' else scrollY = parseInt(document.body.style.top) document.body.style.position = '' document.body.style.top = '' document.body.style.overflowY = '' + document.body.style.width = '' window.scrollTo(0, scrollY * -1) if scrollY From dcb5b36859d323660adb64e96da62c2611af9b8a Mon Sep 17 00:00:00 2001 From: Guido Oliveira Date: Mon, 29 Mar 2021 14:17:33 -0300 Subject: [PATCH 3/4] refactor scroll logic --- .../javascripts/darkswarm/directives/body_scroll.js.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/darkswarm/directives/body_scroll.js.coffee b/app/assets/javascripts/darkswarm/directives/body_scroll.js.coffee index c2f8429ff2..bfe7eeb4a8 100644 --- a/app/assets/javascripts/darkswarm/directives/body_scroll.js.coffee +++ b/app/assets/javascripts/darkswarm/directives/body_scroll.js.coffee @@ -9,9 +9,9 @@ Darkswarm.directive "bodyScroll", ($rootScope, BodyScroll) -> document.body.style.overflowY = 'scroll' document.body.style.width = '100%' else - scrollY = parseInt(document.body.style.top) + scrollY = parseInt(document.body.style.top) * -1 document.body.style.position = '' document.body.style.top = '' document.body.style.overflowY = '' document.body.style.width = '' - window.scrollTo(0, scrollY * -1) if scrollY + window.scrollTo(0, scrollY) if scrollY From 877d76cf19d04e4212f5d0774efd3f33f96a98b1 Mon Sep 17 00:00:00 2001 From: Guido Oliveira Date: Tue, 30 Mar 2021 10:05:04 -0300 Subject: [PATCH 4/4] fix display scrollbar only if needed --- .../javascripts/darkswarm/directives/body_scroll.js.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/javascripts/darkswarm/directives/body_scroll.js.coffee b/app/assets/javascripts/darkswarm/directives/body_scroll.js.coffee index bfe7eeb4a8..dce6d4c5e5 100644 --- a/app/assets/javascripts/darkswarm/directives/body_scroll.js.coffee +++ b/app/assets/javascripts/darkswarm/directives/body_scroll.js.coffee @@ -3,7 +3,7 @@ Darkswarm.directive "bodyScroll", ($rootScope, BodyScroll) -> scope: true link: (scope, elem, attrs) -> $rootScope.$on "toggleBodyScroll", -> - if BodyScroll.disabled + if BodyScroll.disabled && document.body.scrollHeight > document.body.clientHeight document.body.style.top = "-#{window.scrollY}px" document.body.style.position = 'fixed' document.body.style.overflowY = 'scroll'