如何删除响应式菜单下方的背景滚动

时间:2014-11-20 12:22:05

标签: jquery html css responsive-design

我正在开发一个简单的响应式菜单。一切都工作得很好,除了当菜单更大并滚动到它的底部时,它将继续滚动它下面的所有内容,这是它自己的页面。是否可以删除它。

您可以在this链接上进行测试。

如果您使用手机打开,菜单将滚动到底部,之后它将继续骂背景,这是我的身体,所以我试图阻止它。

谢谢

3 个答案:

答案 0 :(得分:1)

在css中创建类disableScroll .disableScroll {overflow:hidden}

当用户点击'#menu-toggle-wrapper'添加课程' disableScroll'到body元素,这会禁用背景滚动,然后删除' disableScroll'用户点击导航链接或'#menu-toggle-wrapper'启用页面滚动

答案 1 :(得分:0)

你应该检查这个插件。

https://github.com/jquery/jquery-mousewheel

它可以防止目标元素下的鼠标滚轮事件。

$(function() {

   $("#element").mousewheel(function(event, delta) {
      event.preventDefault();
   });

});

答案 2 :(得分:0)

您应该使用javascript阻止正文或html滚动。 检查一下 - > copied from this link

 // lock scroll position, but retain settings for later
  var scrollPosition = [
    self.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft,
    self.pageYOffset || document.documentElement.scrollTop  || document.body.scrollTop
  ];
  var html = jQuery('html'); // it would make more sense to apply this to body, but IE7 won't have that
  html.data('scroll-position', scrollPosition);
  html.data('previous-overflow', html.css('overflow'));
  html.css('overflow', 'hidden');
  window.scrollTo(scrollPosition[0], scrollPosition[1]);


  // un-lock scroll position
  var html = jQuery('html');
  var scrollPosition = html.data('scroll-position');
  html.css('overflow', html.data('previous-overflow'));
  window.scrollTo(scrollPosition[0], scrollPosition[1])