首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有bodyScrollLock的Sidr将页面滚动到顶部

带有bodyScrollLock的Sidr将页面滚动到顶部
EN

Stack Overflow用户
提问于 2019-01-18 01:05:43
回答 1查看 229关注 0票数 0

我正在使用Sidr (https://github.com/artberri/sidr)和bodyScrollLock (https://github.com/willmcpo/body-scroll-lock/)。当我在没有Sidr的情况下使用bodyScrollLock时,它工作得很好,但是当我在Sidr中使用它时,当我点击菜单按钮时,它会跳转到页面顶部。我还尝试过从Sidr的onOpenonClose事件中删除bodyScrollLock,打开菜单,然后在JavaScript控制台中输入bodyScrollLock.disableBodyScroll();,它仍然会将页面滚动到顶部,所以问题一定是Sidr显示菜单的方式。下面是我用来打开Sidr并禁用身体滚动的代码:

代码语言:javascript
复制
$( '#mobile-nav-toggle' ).sidr( {
    name: 'mobile-nav',
    side: 'right',
    displace: false,
    speed: 400,
    onOpen: function () {
        bodyScrollLock.disableBodyScroll( '#mobile-nav' );
    },
    onClose: function () {
        bodyScrollLock.enableBodyScroll( '#mobile-nav' );
    }
} );

有什么办法阻止页面滚动到顶部吗?

(顺便说一句,如果Sidr内置了当菜单可见时禁止滚动正文的选项,那就更好了。)

EN

回答 1

Stack Overflow用户

发布于 2019-04-07 19:58:25

你能不能通过css和JS将溢出改为隐藏到你想要的元素,然后仍然使用sidr?因为我认为body滚动锁唯一做的事情就是一个溢出:隐藏的CSS属性,所以可能是这样的:

代码语言:javascript
复制
$( '#mobile-nav-toggle' ).sidr( {
    name: 'mobile-nav',
    side: 'right',
    displace: false,
    speed: 400,
    onOpen: function () {
        $( '#mobile-nav' ).css({'overflow': 'hidden'});
    },
    onClose: function () {
        $( '#mobile-nav' ).css({'overflow': 'visible'});
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54240932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档