我有一个自动完成列表,在列表中我使用iscroll 4滚动:http://cubiq.org/iscroll-4用于移动设备。(Html5 + PhoneGap for Android)
在输入中写入一个字母(AutoComplete已打开)时,我调用了一个刷新滚动的函数,因为每次写一个字母时,列表的大小都会改变。
我的刷新功能:
function RefreshScroll() {
MyScroll.scrollToElement('li:nth-child(1)', 100)// Jump to the first element
setTimeout(function () {
MyScroll.refresh();// Refresh scroll bar -function of iscroll 4
}, 0);
}
我的卷轴:
document.addEventListener('DOMContentLoaded', LoadScroll, false);
var myScroll;
function LoadScroll() {
document.addEventListener('touchmove', function (e) { e.preventDefault(); });
myScroll= new iScroll('wrapper');
}
我有几个问题:
第一次按下键盘字母时,列表显示而不滚动,只有在点击第二个字母时才显示滚动。
第二次出现滚动时,我向下滚动,当到达列表的末尾而不是跳回时,随着列表的继续,它会下降。
任何人都可以帮助我吗?
答案 0 :(得分:0)
最后我用这种方式解决了问题:
因为自动完成填充需要一些时间,所以我只在一段时间后刷新滚动。
我更改了功能:
function RefreshScroll() {
setTimeout(function () {
MyScroll.scrollToElement('li:nth-child(1)', 100)
setTimeout(function () {
MyScroll.refresh();
}, 0);
}, 200);
}
这解决了两个问题,可能每次加载上一个列表滚动