2013-08-28 4 views
1

То, что я не достиг, - это страница для прокрутки до определенной позиции при нажатии кнопки. Я работаю над такими браузерами, как Chrome и IE, но он не работает в любом мобильном браузере.Как я могу прокрутить прокрутку на мобильном веб-браузере с помощью jQuery?

Это код, я использую:

$("#programmaMenu").on("click", "div", function(event){ 
     event.preventDefault(); 
     $('html').stop().animate({ 
      scrollTop: $("#"+$(this).attr("rel")).position().top - 120 
     }, 500, 'swing'); 
}); 

Событие делает огонь, только не происходит прокрутка.

+1

Попробуйте выбрать как '' html' и body' элементы: '$ («HTML, тело»)' – undefined

+0

Спасибо, вот ответ –

ответ

4

С благодаря пользователю vohuman, это ответ:

Видимо мобильные браузеры прокрутки корпусного элемента и настольные браузеры прокрутки элемента HTML. Для этого, решение вопроса заключается в выборе оба элемента «HTML» и «тело», как так:

$("#programmaMenu").on("click", "div", function(event){ 
     event.preventDefault(); 
     $('html, body').stop().animate({ 
      scrollTop: $("#"+$(this).attr("rel")).position().top - 120 
     }, 500, 'swing'); 
}); 
+1

. Что такое '.stop()' здесь –

+2

Остановка останавливает предыдущую анимацию. –

0

Используйте это и попробовать,

$(document).on("click", "#programmaMenu", function(event){ 
    event.preventDefault(); 
    $('html').stop().animate({ 
     scrollTop: $("#"+$(this).attr("rel")).position().top - 120 
    }, 500, 'swing'); 
    }); 
+0

Событие срабатывает, только прокрутка не происходит. Я обновлю вопрос –

+1

Хорошо. Попробуйте добавить html, body в селектор для jquery. $ ('html, body'). stop(). animate ({}); Или еще вы можете попробовать удалить параметр поворота из функции –