2014-11-04 3 views
1

В jQueryMobile, на загрузке страницы, я бы выделил нужную позицию. Я знаю, как это сделать в классическом jQuery, но в jQueryMobile есть автокролл вверх на загрузке страницы.jQueryMobile - прокрутить до пункта onLoad

Я попытался сделать:

$(document).ready(function() { 
    $.mobile.silentScroll(1000); 
}); 

Это не работает. Моя страница остается заблокированной в верхней части страницы.

Хотя, если я нажимаю на ссылку с onclick="$.mobile.silentScroll(1000);", которая отлично работает!

Я просто хотел бы прокрутить страницу yPosition на странице загрузки :)!

======= EDIT ============

После предложения Белого Ворона и Омар Я пытался сделать это:

$(document).delegate("#pagePkmn", "pageinit", function() { 
     $.mobile.silentScroll(1000); 
    }); 

ИЛИ это:

$(document).one("pagecontainershow", function() { 
     $.mobile.silentScroll(1000); 
    }); 

Но до сих пор нет эффекта ...

Спасибо за внимание.

+0

Вы можете добавить небольшую задержку в прокрутку: setTimeout (function() {$. Mobile.silentScroll (1000);}, 100); в pagecontainshow: http://jsfiddle.net/ezanker/r9y7e9rw/ – ezanker

ответ

1

Использование $ (документ) .ready() является плохой идеей:

http://view.jquerymobile.com/1.3.1/dist/demos/faq/dom-ready-not-working.html

Рекомендуется использовать pageinit

=== РЕДАКТИРОВАТЬ ===

Вы всегда можете использовать путь гетто:

setTimeout(function(){$.mobile.silentScroll(1000);}, 1000); // scroll after 1 second 
+0

Я просто пробовал, но все равно никакого эффекта:/ – dramixx

+0

Im только оставляя это здесь: https://github.com/jquery/jquery-mobile/issues/3461 –

+0

Хорошо спасибо, что работает :)! Могу ли я установить TimeOut на 1 мс или 10 мс? Чтобы получить эффект как мгновенный? Какая проблема может возникнуть? – dramixx

1

Использовать pagecontainershow, поскольку он запускается после показа страницы и JQM выполняет прокрутку по умолчанию на верх страницы.

$(document).one("pagecontainershow", function() { 
    /* scroll */ 
}); 
+0

Я просто пробовал, но все равно ничего не делал:/ – dramixx

+0

@dramixx это событие является последним, вызывающим в последовательности событий pagecontainer. В зависимости от скорости устройства в большинстве случаев вам может потребоваться отсрочка прокрутки на 100 мс. – Omar

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