2013-09-27 56 views
0

我有一个网页带有一个选项卡式的导航栏,是在页面上的一些方法。该页面具有响应性,因此窗口的高度和宽度可能会发生变化。我的代码在桌面环境中工作正常,但是当我将其拉到iPhone或iPad上时,$(window).scroll函数的响应速度很慢。我将向下滚动,并且只有当屏幕停止滚动时,我的功能才会发生。它使我的固定导航延迟出现或消失。有什么建议么?下面的代码示例:

HTML:

<div id="retail-nav"> 
       <div id="navwrap"> 
        <ul> 
         <li id="retail-tab-1"><a class="active"><i class="icon-list-alt"></i> <?php the_field(tab_1);?></a></li> 
         <li id="retail-tab-2"><a><i class="icon-lock"></i> <?php the_field(tab_2);?></a></li> 
         <li id="retail-tab-3"><a><i class="icon-lightbulb"></i> <?php the_field(tab_3);?></a></li> 
        </ul> 
       </div> 
      </div> 
      <div id="retail-nav-float"> 
       <div id="navwrap-float"> 
        <ul> 
         <li id="retail-tab-1-float"><a class="active"><i class="icon-list-alt"></i> <?php the_field(tab_1);?></a></li> 
         <li id="retail-tab-2-float"><a><i class="icon-lock"></i> <?php the_field(tab_2);?></a></li> 
         <li id="retail-tab-3-float"><a><i class="icon-lightbulb"></i> <?php the_field(tab_3);?></a></li> 
        </ul> 
       </div> 
      </div> 

的JavaScript

var navHeight = jQuery('#retail-nav').offset().top; 
       jQuery(window).scroll(function() { 
        if(jQuery(window).scrollTop() > navHeight) { 
         jQuery('#retail-nav-float').css('display', 'inline'); 
        }else{ 
         jQuery('#retail-nav-float').css('display', 'none'); 
        } 
       }); 

CSS:

#retail-nav{ 
    width: 100%; 
    height: 55px; 
    background-color: #494949; 
    overflow: hidden; 
    position: relative; 
} 
#retail-nav-float{ 
    width: 100%; 
    height: 55px; 
    background-color: #494949; 
    overflow: hidden; 
    position: fixed; 
    top:0; 
    display: none; 
} 
#navwrap, #navwrap-float{ 
    height: 100%; 
    width: 100%; 
    max-width: 1012px; 
    display: block; 
    margin-left: auto; 
    margin-right: auto; 
    margin-top: -13px; 
    text-align:center; 
    line-height: 55px; 
} 

回答

1

对于手机&平板电脑,你将不得不增加touchmove事件。

例如

element.addEventListener("touchmove", touchMove, false); 

本页面去深入了解它: https://developer.apple.com/library/ios/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html

我希望这可以帮助你!

+0

我一直在试图围绕这个包裹我的头,但我无法弄清楚如何实现这一点,可以有效地取代桌面上的滚动事件... – Watty