0

我有一些 jQuery 脚本,它定位一个侧边栏菜单以随屏幕向下滚动:

<head>    
<script type="text/javascript">
    jQuery(function($) {
    function fixDiv() {
      if ($(window).scrollTop() > 365)
        { 
        $('#Portfolio-Sidebar-Content-Web').css({'position': 'fixed', 'top': '0', 'margin-top': '20px'}); 
        }
      else
        {
        $('#Portfolio-Sidebar-Content-Web').css({'position': 'static', 'top': 'auto', 'margin-top': '0'});
        }
    }
    $(window).scroll(fixDiv);
    fix5iv();
    });
    </script>
</head>

这在桌面上工作得很好,但在平板电脑和移动设备上缩放时表现不同,因为 div 固定在屏幕上并与内容重叠。

这就是我希望@media 查询在平板电脑或移动设备上启动并以不同方式定位 div 的地方,覆盖 jQuery 脚本应用的样式:(@media 样式放置在我的样式表的最底部)

@media only screen and (max-device-width: 480px) {
    #Portfolio-Sidebar-Content-Web{
        position: fixed !important;
        top: 0px !important;
        }
}

然而,这段代码对我不起作用:/似乎 jQuery 样式将始终覆盖我应用的任何 css 定位,并且 div 继续在任何设备上滚动。

4

1 回答 1

1

您可以将 jquery 设置为仅在屏幕尺寸符合您要求时才生效;

<script type="text/javascript">
    jQuery(function($) {
    if ( $(window).width() > 759) {
    function fixDiv() {
      if ($(window).scrollTop() > 365)
        { 
        $('#Portfolio-Sidebar-Content-Web').css({'position': 'fixed', 'top': '0', 'margin-top': '20px'}); 
        }
      else
        {
        $('#Portfolio-Sidebar-Content-Web').css({'position': 'static', 'top': 'auto', 'margin-top': '0'});
        }
    }
    $(window).scroll(fixDiv);
    fix5iv();
    }
    });
    </script>
于 2013-05-17T21:20:38.857 回答