2016-10-11 2 views
2

Я использую scrollTop JQuery (в) для фиксированного меню:Detect scrollTop() при наведении указателя мыши (портативное устройство)

function fixed_menu(){ 

    if($('window').width() < 770) 
    { 
     var menu = $('.col-left.sidebar'); 
     var offset = menu.offset(); 
     var trigger = offset.top; 

     $(document).scroll(function(e){ 
      if($('body').scrollTop() >= trigger){ 
       menu.addClass('fixed'); 
      } else if ($('body').scrollTop() < trigger){ 
       menu.removeClass('fixed'); 
      } 
     }); 
    } 

} 
fixed_menu(); 

Когда я тестирую на моем телефоне (андроид устройства, Moto G второго поколения), оператор if все еще работает во время прокрутки.

Когда я тестирую iPad mini, инструкция if инициируется только тогда, когда выполняется наведение.

Как я могу заставить эту функцию работать на некоторых устройствах iOS, в то время как зависание все еще продолжается?

ответ

3

scrollTop() функция проблематична в разных браузерах. Вы можете попробовать с $('html, body').scrollTop() и $(window).scroll()

function fixed_menu(){ 
    if($('window').width() < 770){ 
     var menu = $('.col-left.sidebar'); 
     var offset = menu.offset(); 
     var trigger = offset.top; 

     $(window).scroll(function(e){ 
      if($('html, body').scrollTop() >= trigger){ 
       menu.addClass('fixed'); 
      } else if ($('html, body').scrollTop() < trigger){ 
       menu.removeClass('fixed'); 
      } 
     }); 
    } 
} 
fixed_menu(); 
+0

Как странно, хорошо, он работал, спасибо большое! :) –

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

  • Нет связанных вопросов^_^