use*_*ser 14 html javascript iscroll cordova cordova-2.0.0
我已经尝试为我的应用程序实现iscroll java脚本作为CSS 位置的补救过程:修复了在使用cordova 2.1.0的 android 2和3版本中不起作用
我从这里复制了iscroll-lite的javascript
HTML代码
<div id="wrapper" class="wrapper">
<div id="wrapper-container" class="wrapper-container">
<div id="header" class="header">
<div id="header_title" class="header_title"> </div>
<div id="abc" class="abc"><img src="img/abc.png""/> </div>
</div>
<div id="images" class="images"><img name="slide" src="img/abc.png" width=100%; />
</div>
<div id="description" class="description">
<div id="title" class="title">
<h1><strong></strong></h1>
</div>
<div id="desc" class="desc">
</div>
</div>
<div id="footer" style="background-image:url(img/bar.png);" class="footer">
<div id="footer_text" class="footer_text">footer_text</div>
<div id="image" class="image noSelect"><img src="img/info.png" onclick="info()"/></div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
desc标签的内容将溢出
CSS
.wrapper
{
position: absolute; width:auto; margin:0 auto; height:100%; overflow: hidden;
}
.wrapper_other
{
width:auto; margin:0 auto; height:100%; overflow: hidden;
}
.wrapper_container
{
width:100%; margin:0 auto; font-family:Arial, Helvetica, sans-serif;
}
.header
{
float:left; height:100%; min-height:100%; margin:0%; width:96%; padding:3% 2% 0;
}
.header_title
{
float:left; padding:0%; margin:0%; height:100%; min-height:100%; font-size:22px; color: #FFFFFF; text-align:center; font-weight: bold; width:80%;
}
.images
{
position:relative; width:100%;
}
.description
{
float:left; width:100%; overflow:auto; height:100%;
}
.title
{
width:85%; font-weight:bold; float:left; font-size:20px; margin-top:3%; margin-bottom:2%; margin-left:5%; color:#FFFFFF;
}
.desc
{
width:90%; font-size:15px; margin-left:5%; margin-right:5%; float:left; color: #FFFFFF; overflow:auto; text-align:justify; line-height:18px; padding:0px 0px 40px 0px;
}
.desc p
{
margin-top:0;
}
.footer
{
width:100%; position:absolute; bottom:0; font-size:11px; color:#FFFFFF; text-align:center; height:30px;
}
.footer_text
{
text-indent:1%; float:left; text-align:center; width:75%; margin-top:2%;
}
.info
{
width:25%; float:right; padding-top:1%;
}
Run Code Online (Sandbox Code Playgroud)
使用iscroll
<script type="text/javascript" charset="utf-8" src="iscroll.js"></script>
<script type="text/javascript" charset="utf=8" src="cordova-2.1.0.js"></script>
var myScroll;
document.addEventListener("deviceready", onDeviceReady, false);
function scroll()
{
myScroll = new IScroll('.wrapper', { scrollX:false , scrollY:true});
}
----
----
function onDeviceReady()
{
scroll();
----
----
Run Code Online (Sandbox Code Playgroud)
在滚动时,我得到以下内容
W/webview(3101): Miss a drag as we are waiting for WebCore's response for touch down.
Run Code Online (Sandbox Code Playgroud)
问题:
这不是滚动.如果它经过努力就可以了,但它只滚动一次.我回到主页并返回它根本不滚动.
请指导我!!
编辑:我已尝试过各种组合..将所有div替换为li标签...... css无效.然后在每个div中使用li标签.没用...它没有滚动:
<div id="wrapper">
<div id="scroller">
<ul>
<div id="header " class="header ">
<div id="header_title" class="header_title"> </div>
<div id="xyz" class="xyz"><img src="img/xyz.png" onClick="xyz()"/></div> </div> </ul>
<ul>
<div id="images" class="images"><img name="slide" src="img/banner1.png" width=100%; />
</div>
</ul>
<ul>
<div id="param" class="param">
<div id="abc" class="abc noSelect"> </div>
<div id="def" class="def noSelect" > </div>
<div id="ghi" class="ghi noSelect" > </div>
<div id="ijk" class="ijk noSelect" > </div>
</div>
</ul>
<ul>
<div id="description" class="description">
<div id="title" class="title">
<h1><strong><li></li></strong></h1>
</div>
<div id="desc" class="desc">
<p><li></li> </p>
</div>
</div>
</ul>
Run Code Online (Sandbox Code Playgroud)
Fil*_*tis 15
您似乎没有遵循iScroll要求的结构.iScroll页面专门提到(注意粗体文字):
最佳的iScroll结构是:
Run Code Online (Sandbox Code Playgroud)<div id="wrapper"> <ul> <li></li> ... ... </ul> </div>在此示例中,将滚动UL元素.iScroll必须应用于滚动区域的包装器.
重要说明:只会滚动包装元素的第一个子元素.如果您需要更多滚动条内的元素,您可以使用以下结构:
Run Code Online (Sandbox Code Playgroud)<div id="wrapper"> <div id="scroller"> <ul> <li></li> ... ... </ul> <ul> <li></li> ... ... </ul> </div> </div>在该示例中,将滚动滚动元素(与两个UL一起).
你有:
<div id="wrapper" class="wrapper">
<div id="wrapper-container" class="wrapper-container">
... head ...
</div>
... (your main div here) ...
</div>
Run Code Online (Sandbox Code Playgroud)
所以你的主div不会被iScroller滚动,你只能使标题div可滚动.看一下iScroll演示并首先测试它...它对你的设备有效吗?如果是,请尝试遵循其结构.
小智 8
在您发布的脚本代码中,我发现了一个错误.我不知道您的实际文件中是否存在此错误.但想想先分享那个.
这是您的脚本代码.
myScroll = new IScroll('.wrapper',{scrollX:false,scrollY:true});
我发现了错误
CSS规则名称.你最好通过ID这里.假设您的ID是iScrollWrapper然后以下列格式启用滚动条.myScroll = new IScroll('iScrollWrapper',{scrollX:false,scrollY:true});
现在将看到最好的DOM structure(HTML格式),iScroll这不会给你带来麻烦W3C valid
选项1
<div id="iScrollWrapper" class="****** IMPORTANT_POINT_1 ******">
<ul>
<li>
<YOUR_REMAINING_DOM_STRUCTURE_IN_THE_WAY_YOU_NEED>
</li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
选项2
<div id="iScrollWrapper" class="****** IMPORTANT_POINT_1 ******">
<ul>
<li>
<YOUR_ONE_DOM_STRUCTURE_IN_THE_WAY_YOU_NEED>
</li>
<li>
<YOUR_ANOTHER_DOM_STRUCTURE_IN_THE_WAY_YOU_NEED>
</li>
<li>
<YOUR_ANOTHER_DOM_STRUCTURE_IN_THE_WAY_YOU_NEED>
</li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
首先想你要做的就是
****** IMPORTANT_POINT_1 ******
Run Code Online (Sandbox Code Playgroud)
您附加iScroll的元素应具有非静态,非固定位置类型(可以使用' relative'或' absolute').该元素应该height在pixel(如果你有min-height或max-height但没有**height** iScroll会说抱歉.它将无效)
现在将看到如何附加iScroll.
附加的好方法iScroll如下(这是我申请iScroll元素时学到的)
如果你正在使用的Single Page Application (SPA)话
if('undefined' != typeof iScrollerObject){
iScrollerObject.destroy();
}
iScrollerObject = new iScroll('iScrollWrapper',{/* OPTIONS_GOES_HERE */});
Run Code Online (Sandbox Code Playgroud)
如果您iScrollerObject在SPA应用程序中将其作为成员变量,则使用
var _this = this;
if(null != _this.iScrollerObject){
_this.iScrollerObject.destroy();
}
_this.iScrollerObject = new iScroll('iScrollWrapper',{/* OPTIONS_GOES_HERE */});
Run Code Online (Sandbox Code Playgroud)
对于普通浏览器页面.
var iScrollerObject = new iScroll('iScrollWrapper',{/* OPTIONS_GOES_HERE */});
Run Code Online (Sandbox Code Playgroud)
如果您动态更新内容checkDOMChanges : true,请在选项中使用.如果仍然无法更新动态DOM更改的滚动条,那么在完成动态DOM更改调用之后iScrollerObject.refresh();
我iScroll根据自己的经验分享了我所学到的知识.如果您需要,请告诉我.请记住,您使用的iScroll lite版本实际上比标准功能少iScroll4.如果你想使用iScroll版本,那就去吧iScroll4.
| 归档时间: |
|
| 查看次数: |
12411 次 |
| 最近记录: |