我是Phonegap的新手。我在列表视图中显示数据列表。数据是从服务器收集的,我想在视图中添加一个滚动条。如何在 Phonegap 中添加滚动条并使视图滚动具有粘性?Jow 让它光滑?请指导我这样做。
提前致谢。
我个人不喜欢 iscroll .. 使用它有很多问题,所以我发现了另一种解决方案......你可以试试这个:
1.)将您的DIV溢出设置为自动(或滚动)并设置其高度..例如
<div id="wrapper" style="overflow:auto; height: 200px">...content...</div>
(我通常根据用户的屏幕尺寸用 javascript 计算高度。我从来没有为所有设备设置一个固定的高度,这只是为了这个“演示”的目的)
2.)添加这个javascript:
<script>
function isTouchDevice(){
try{
document.createEvent("TouchEvent");
return true;
}catch(e){
return false;
}
}
function touchScroll(id){
if(isTouchDevice()){ //if touch events exist...
var el=document.getElementById(id);
var scrollStartPos=0;
document.getElementById(id).addEventListener("touchstart", function(event) {
scrollStartPos=this.scrollTop+event.touches[0].pageY;
event.preventDefault();
},false);
document.getElementById(id).addEventListener("touchmove", function(event) {
this.scrollTop=scrollStartPos-event.touches[0].pageY;
event.preventDefault();
},false);
}
}
</script>
3.) 在页面加载时调用它.. 如果你使用 jQuery:
$(document).ready(function() {
touchScroll("wrapper");
});
4.) 如果您希望滚动条可见,只需定义以下 CSS 规则:
::-webkit-scrollbar {
width: 10px;
}
::-webkit-scrollbar-track {
border-radius: 10px;
}
::-webkit-scrollbar-thumb {
border-radius: 10px;
background-color: #000;
}
这已经过测试,并且应该在任何 Android(甚至更旧的型号)或 iOS 设备上完全相同(如果没有这种解决方法也可以工作 - 但这种解决方法不会破坏它)。您可以将其与包装元素的 position:fixed 或 position:absolute 结合使用...
您还可以使用 touchScroll 功能,您可以添加一些缓动甚至滑动检测自动滚动等,但这是一个更高级的问题......
使用iscroll。
脚步
function loaded() {
document.addEventListener('touchmove', function(e){ e.preventDefault(); });
myScroll = new iScroll('scroller');
}
document.addEventListener('DOMContentLoaded', loaded);`
<div id="wrapper">
<div id="scroller">
<ul>
<li>...</li>
</ul>
</div>
#wrapper 还需要一些类:
#wrapper {
position:relative;
z-index:1;
width:/* your desired width, auto and 100% are fine */;
height:/* element height */;
overflow:/* hidden|auto|scroll */;
}
检查此示例演示