当显示模态时,我会将一个带有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