當顯示模態時,我會將一個帶有overflow: hodden
的類添加到body標籤。所以模式背後的內容不會滾動。一切都很好。如何設置溢出:隱藏但仍使滾動條可見?
但
如果原來的頁面是足夠大,有一個滾動條,然後我可以看到頁面的醜陋右移,當我打開模式。我找出了這種行爲的原因。 Overflow: hidden
會導致滾動條消失,所以這就是爲什麼它向右移動約10px。
我的問題是如何解決這個問題。實際上,我需要應用overflow:hidden
,但仍然顯示滾動條。
當顯示模態時,我會將一個帶有overflow: hodden
的類添加到body標籤。所以模式背後的內容不會滾動。一切都很好。如何設置溢出:隱藏但仍使滾動條可見?
但
如果原來的頁面是足夠大,有一個滾動條,然後我可以看到頁面的醜陋右移,當我打開模式。我找出了這種行爲的原因。 Overflow: hidden
會導致滾動條消失,所以這就是爲什麼它向右移動約10px。
我的問題是如何解決這個問題。實際上,我需要應用overflow:hidden
,但仍然顯示滾動條。
(function() {
\t let _scrollPosition;
\t function preventScroll(e) {
\t \t e.preventDefault();
\t \t window.scroll(..._scrollPosition);
\t }
\t function lock() {
\t \t _scrollPosition = [window.pageXOffset, window.pageYOffset];
\t \t $(window).on('scroll touchmove', preventScroll);
\t }
\t function unlock() {
\t \t $(window).off('scroll touchmove', preventScroll);
\t }
\t return {
\t \t lock,
\t \t unlock
\t };
})();
爲您打開模式與此代碼,你可以只想儘快鎖定滾動位置。
感謝您的關注!問題是我需要用戶能夠滾動模態的內容。在你的解決方案中,滾動功能是完全禁用的。可能的用例是使用'window.pageYOffset'獲取當前Y座標,然後設置'position:fixed'和'top:currentY px'。但是用'overflow:hidden'這樣做更容易,這就是爲什麼我想了解滾動條可見性的原因。 –
你可以包括你的HTML和CSS(如果可能在JSFiddle中)? – Roberrrt
@Roberrrt你需要什麼樣的代碼?我在Meteor + React中有我的應用程序,但是任何代碼都是不需要的,我的問題已經解釋得很好。可能是'showModal(){$('body').css('overflow','hidden');}'和'closeModal(){$('body').css('overflow','auto ');}'。但你真的不需要那個。我想你不明白這個問題。 –
我的不好,我確實誤解了你的問題,我提供了一個(可能的)解決方案,讓我知道它是如何結束的! – Roberrrt