2013-09-27 5 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

Смежные вопросы