0

我正在尝试使用下面的代码根据页面宽度使侧边栏菜单具有粘性或不粘性。基本上,如果窗口宽度超过 768 像素,“unstick”应该为 false,或者小于 768px 时为 true。如果用户调整页面大小,它也应该更新。

它在初始页面加载时正常工作,但在调整大小时并非总是如此。如果页面开始 > 768,并且缩小,unstick 会从 false 变为 true,就像我想要的那样;但是然后它就这样卡住了,如果页面放大就不会变回来。

如果页面开始 <768,unstick 开始设置为 true,就像我想要的那样,但是调整页面大小不会改变任何东西——它总是保持 true。

我的条件有问题吗?

$(function(){
  $(window).resize(function(){
     if($(this).width() >= 768){
         jQuery('#info').containedStickyScroll({
             duration: 0,
             unstick: false
         });
     } else {
         jQuery('#info').containedStickyScroll({
             duration: 0,
             unstick: true
         });
     }
  })
  .resize();//trigger resize on page load
});
4

1 回答 1

1

看起来您的插件没有删除它的旧事件/dom 元素。每次调用 .containedStickyScroll 时,它都会保留之前的一些选项。

这是我为修复它所做的:

$(function(){
    $(window).resize(function(){
        if($(this).width() >= 768){
            jQuery('#info').containedStickyScroll({
                duration: 0,
                unstick: false
             });
             $(".scrollFixIt").remove();
             $(window).unbind("scroll");
         } else {
             jQuery('#info').containedStickyScroll({
                 duration: 0,
                 unstick: true
             });
         }
    })
    .resize();//trigger resize on page load
});

希望这可以帮助。

于 2012-04-27T18:46:08.083 回答