Я реализовал WebApp, используя SplitView - http://asyraf9.github.com/jquery-mobile/ - (и, похоже, использует компонент ScrollView) вместе с jQuery Mobile. Все отлично работает ...
Внутри панели у меня есть список элементов, которые должны динамически добавлять элементы, когда прокрутка достигает конца списка. На iPhone я не использую SplitView, но iScroll - http://cubiq.org/iscroll - и следующий код для достижения этого (и он работает).
HTML:
<div data-role="panel" data-id="menu" data-hash="crumbs" style="z-index: 10000;" id="Panel">
<div data-role="page" id="Root" class="Login" onscroll="console.log('onscroll');">
<div data-role="content" data-theme="d" onscroll="console.log('onscroll');">
<div class="sub">
<ul data-role="listview" data-theme="d" data-dividertheme="a" class="picListview" id="PortfolioList">
<!-- Content added dynamically -->
</ul>
</div>
</div>
</div>
</div>
Javascript:
var defaultIScrollOptions = {
useTransition: true,
onScrollStart: function() {
this.refresh();
},
onScrollEnd: function() {
if (this.elem && this.id) {
possiblyDisplayNextDocuments(this.y, this.elem, this.id);
}
}
};
iScrolls.push(new iScroll(document.getElementById("searchResults").parentNode, defaultIScrollOptions));
Но при использовании SplitView я действительно не знаю, какое событие и какой элемент привязать слушателя или как получить позицию прокрутки. Я уже пробовал несколько комбинаций, но не добился хороших результатов. Лучшим был следующий:
$("#PortfolioList").scrollstop(function(event) {
console.log("scrollstop: "+$("#PortfolioList").scrollTop());
});
У меня вопрос: использую ли я правильный приемник событий (поскольку он уже запускается, хотя анимация прокрутки все еще используется) и как мне получить позицию прокрутки?