Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用iScroll在iOS中的web应用程序中滚动_Javascript_Ios_Web Applications - Fatal编程技术网

Javascript 使用iScroll在iOS中的web应用程序中滚动

Javascript 使用iScroll在iOS中的web应用程序中滚动,javascript,ios,web-applications,Javascript,Ios,Web Applications,我有一些以前为Android应用程序开发的web应用程序,我们正在尝试将它们移植到iOS 第一个问题是,我们的广告没有留在原地,因为position:fixed在移动Safari中是不好的。所以,我下载了一卷 我发现iScroll不能很好地使用我们的RSS提要阅读器(jQuery的zRSSFeed)。事实上,当在同一页面上同时启用这两个功能时,iScroll功能“起作用”,但会卡在页面顶部 我发布到iScroll用户组(https://groups.google.com/group/iscrol

我有一些以前为Android应用程序开发的web应用程序,我们正在尝试将它们移植到iOS

第一个问题是,我们的广告没有留在原地,因为position:fixed在移动Safari中是不好的。所以,我下载了一卷

我发现iScroll不能很好地使用我们的RSS提要阅读器(jQuery的zRSSFeed)。事实上,当在同一页面上同时启用这两个功能时,iScroll功能“起作用”,但会卡在页面顶部

我发布到iScroll用户组(https://groups.google.com/group/iscroll/browse_thread/thread/5dd274ff4159a672)但没有得到有用的答案

我甚至试着换一个不同的RSS库,但它们似乎都引出了这个问题

以前有人有过这个问题吗?有人解决了吗?我应该放弃,把广告放在网络应用程序的底部,还是什么

谢谢大家

编辑:我想我应该添加一些代码

web stuff的基本结构:

....
<div id="appBody">
    <div id="feedResults">
        <!-- rss entries go here -->
    </div>
</div>
<div id="appAdvertisements">
    <!-- admob JS stuff goes here -->
</div>
....
。。。。
....
基本JS:

var scroll;
document.addEventListener('touchmove', function (e) { e.preventDefault();}, false);
function loaded() {
    scroll = new iScroll('appBody');
    $('#feedResults').rssfeed('<feedurl>', {<options>}, function() { scroll.refresh() });
}
document.addEventListener('DOMContentLoaded', loaded, false);
var滚动;
addEventListener('touchmove',函数(e){e.preventDefault();},false);
函数加载(){
滚动=新的iScroll('appBody');
$('#feedResults').rssfeed('',{},function(){scroll.refresh()});
}
document.addEventListener('DOMContentLoaded',loaded,false);

我建议您首先用解析后的rss填充#feedResults,完成此操作后,启动iScroll。不要同时启动这两个程序,也不要像Matteo在iScroll4文档中所说的那样在没有设置超时的情况下使用refresh()

考虑到函数()after代表onComplete,请尝试以下操作:

var scroll;
function loaded() {
    $('#feedResults').rssfeed('<feedurl>', {<options>}, function() { 
        scroll = new iScroll('appBody');
    });
}
document.addEventListener('touchmove', function (e) { e.preventDefault();}, false);
document.addEventListener('DOMContentLoaded', loaded, false);
var滚动;
函数加载(){
$('#feedResults').rssfeed('',{},function(){
滚动=新的iScroll('appBody');
});
}
addEventListener('touchmove',函数(e){e.preventDefault();},false);
document.addEventListener('DOMContentLoaded',loaded,false);

我认为这将给DOM留出时间让它安装rss,然后iscroll将计算整个包装的正确高度(本例中为appBody)。

我刚才遇到了完全相同的问题。我的解决方案是增加位置:绝对;对于包装器中的元素,您需要添加position:absolute;在基于HTML5的应用程序中,平滑滚动总是具有挑战性的。有第三方库可用于实现smooth scroller,但实现非常复杂。在这个scroller库中,用户只需要在scrollable分区中添加scrollable=true属性,那么该分区将像smooth native scroller一样滚动。请先阅读readme.doc文件,然后开始处理它

图书馆链接


优势:
1无需手动创建滚动条对象。
2如果滚动条中的任何数据发生更改,滚动条将自动刷新
3,因此无需手动刷新。
4嵌套滚动内容也可能没有双重滚动问题。
5适用于所有webkit引擎。
6如果用户想要访问滚动器对象,那么他可以通过编写“SElement.scrollable_wrapper”来访问它。scrollable_wrapper是html页面中定义的可滚动分区的id