0

我有一些 javascript 将一个固定的类应用到我的侧边栏,所以当你滚动时,菜单会留在你身边。Stackoverflow 有类似的问题侧边栏。

    $(function() {      
    var top = $('.side-menu').offset().top - parseFloat($('.side-menu').css('margin-top').replace(/auto/, 0));
    $(window).scroll(function (event) {
      // what the y position of the scroll is
      var y = $(this).scrollTop();

      // whether that's below the form

      if (y >= top) {

        // if so, ad the fixed class
        $('.side-menu').addClass('fixed');
        $('body').addClass('fixed-sidebar');

      } else {
        // otherwise remove it
        $('.side-menu').removeClass('fixed');
        $('body').removeClass('fixed-sidebar');
      }
    });
});

在我的 CSS 中,我有* { box-sizing: border-box; }这导致 else 触发并且页面跳转。当我删除 box-sizing 时,固定菜单会按需要工作。

我的问题是

  • 还有另一种方法可以实现我想要做的事情吗?
  • 有没有办法取消设置box-sizing属性?

编辑

使用此链接进行演示:在不同高度调整浏览器窗口的大小,您会看到问题。http://dev.danielcgold.com/fixed-menu.html

4

1 回答 1

1

当然,您总是可以这样做(selector) { box-sizing: content-box }。(这将“取消”你的box-sizing......)

于 2012-08-16T16:25:42.380 回答