今天在使用iscroll4 做一个简单触屏滚动demo,发现上下拖动的时候总是会回弹,不能看到下面的内容.这个问题苦恼了很久,终于解决,下来就分享一下:

  我的需求是这样的:

  1.获取json数据append到div中去:

<div id="resultContent" class="content resultContent" style="height:280px; overflow: hidden">
<div id="showResult" class="showResult" >
</div>
</div>
<script type="text/javascript">
$("#showResult").children().remove();
var htmlContent=""; //resultSet是已经获取的数据.现在要动态添加到id为showResult的Div中
$.each(resultSet, function (index, items) {
htmlContent += '<div class="questionDiv">' +
'<table width="100%"><tr>' +
'<td width="30" style=" vertical-align:top; padding-top:9px;"><img src="data:images/selectPro/yellowPoint.png"/></td> ' +
'<td>' + items.value.question + '</td></tr>' +
'<tr><td colspan="2" style=" color:red;padding-left:7%; font-size:18px;">' + items.value.solution + '</td></tr>' +
'</table>' +
'</div>';
});
$("#showResult").append(htmlContent);
</script>

  2,使该id为#showResult的div可以触屏滚动,所以我引入了iscroll4 :

<script type="text/javascript">

  setTimeout(function () {
clearInterval(intervalTime);
myScroll = new iScroll('resultContent');
}, 100)
</script>

  问题来了:

  我这里动态添加到div中的内容不管怎么都不被iscroll所渲染,拖动效果就像橡皮筋一样,永远看不到下面隐藏的内容,如下图所示:

  这个问题就是因为,你这个动态数据还没有append完成.该showResult 还没有加载完成,就开始 new iScroll("XXXX")了,这样就不行了,

解决方法:

  关键点:找到这个动态添加的层什么时候加载完成,这个时间点要拿准~~~~

  我的解决方法:

  

<script type="text/javascript">
/**
* 初始化显示结果层的高度,iScroll渲染
*/
var initScroll = function () {
intervalTime = setInterval(function () {
var resultContentH = $("#showResult").height();
if (resultContentH > 0) { //判断数据加载完成的条件
console.log("此时showResult的高度是:" + resultContentH);
$("#showResult").height(resultContentH)
setTimeout(function () {
clearInterval(intervalTime);
myScroll = new iScroll('resultContent');
}, 100)
}
}, 10);
}
</script>

我这里就用它的高度来判断是否加载完成,然后重新给定高度.这样以后再new iScroll("XXXX").就没有问题了啦~~~~

  

异步加载DOM造成的高度问题造成iScroll不能滚动的更多相关文章

  1. Android之ListView异步加载图片且仅显示可见子项中的图片

    折腾了好多天,遇到 N 多让人崩溃无语的问题,不过今天终于有些收获了,这是实验的第一版,有些混乱,下一步进行改造细分,先把代码记录在这儿吧. 网上查了很多资料,发现都千篇一律,抄来抄去,很多细节和完整 ...

  2. 使用jOrgChart插件, 异步加载生成组织架构图

    jOrgChart插件是一个用来实现组织结构图的Jquery的插件- 一.特点 1.支持拖拽修改子节点: 2.支持节点缩放展示: 3.方便修改css定义样式: 4.超轻量型: 5.兼容性好,基本支持所 ...

  3. 淘宝购物车页面 智能搜索框Ajax异步加载数据

    如果有朋友对本篇文章的一些知识点不了解的话,可以先阅读此篇文章.在这篇文章中,我大概介绍了一下构建淘宝购物车页面需要的基础知识. 这篇文章主要探讨的是智能搜索框Ajax异步加载数据.jQuery的社区 ...

  4. js 鼠标滚动到某屏时,加载那一屏的数据,仿京东首页楼层异步加载模式

    js用处:在做商城时,首页图片太多,严重影响首页打开速度,所以我们需要用到异步加载楼层.js名称:鼠标滚动到某屏时,加载那一屏的数据,仿京东首页楼层模式js解释:1.用于商城的楼层内容异步加载,滚动条 ...

  5. 深入理解JS异步编程五(脚本异步加载)

    异步脚本加载 阻塞性脚本 JavaScript在浏览器中被解析和执行时具有阻塞的特性,也就是说,当JavaScript代码执行时,页面的解析.渲染以及其他资源的下载都要停下来等待脚本执行完毕 浏览器是 ...

  6. Javascript 异步加载详解(转)

    本文总结一下浏览器在 javascript 的加载方式. 关键词:异步加载(async loading),延迟加载(lazy loading),延迟执行(lazy execution),async 属 ...

  7. 不得不说的JavaScript异步加载

    同步加载的问题 默认的js是同步加载的,这里的“加载”可以理解成是解析.执行,而不是“下载”,在最新版本的浏览器中,浏览器对于代码请求的资源都是瀑布式的加载,而不是阻塞式的,但是js的执行总是阻塞的. ...

  8. 谈谈异步加载JavaScript

    前言 关于JavaScript脚本加载的问题,相信大家碰到很多.主要在几个点—— 1> 同步脚本和异步脚本带来的文件加载.文件依赖及执行顺序问题 2> 同步脚本和异步脚本带来的性能优化问题 ...

  9. ImageLoader实现图片异步加载

    ImageLoader是一个广泛使用的图片库,在向网络请求图片时,使用imageView和smartView常会产生outofmemory错误,这时ImageLoader可以起到很大的作用,主要有如下 ...

随机推荐

  1. [Linux]学习笔记(4)-su及passwd的用法介绍

    (1)su su命令用于将当前的用户切换到一个指定的用户.语法为: su - user_name 如果用户利用telnet方式远程登录,是不能直接以root账户登录的,也就是说在使用telnet登录服 ...

  2. 使用Chrome+node-inspector查找NodeJS内存泄漏

    关键字:NodeJS, 内存泄漏,node-inspector,Chrome OS:Windows 10 本文介绍如何使用node-inspector+Chrome查找nodejs内存泄漏. 1.创建 ...

  3. C# 返回json结果集,js日期格式化

    asp.net mvc返回json结果集 return Json(new { total = totalCount, rows = result }, JsonRequestBehavior.Allo ...

  4. Tesseract初探

    一.框架介绍 Tesseract 是一款图片识别工具,可以抓取图片中的文字,可以支持多种语言(默认是英语),需要下载开源文件可以在github上下载,如果知识应用不想太多深究直接在google cod ...

  5. android锁屏和finish()后activity生命周期的变化

    之前写了一个一键锁屏软件,有个朋友用了后发现了问题,所以昨天研究了一个activity在锁屏后的生命周期变化.如下: 锁屏分为两个步骤,先是锁定屏幕,再是黑屏 onCreate(在该方法里锁屏)--- ...

  6. python学习笔记23(时间与日期 (time, datetime包))

    Python提供了多个内置模块用于操作日期时间,像calendar,time,datetime. time包 time包基于C语言的库函数(library functions).Python的解释器通 ...

  7. why you write code so slow.

    今天我们要写一个日历表,用以存储所有的节假日. 虽然这个表设计的并不是很妙.但是将就着继续了. 让小弟把该表数据初始化3-5年的,结果一上午还没有出来,着急了,自己写了一个初始化的工具. 分享出来. ...

  8. DataGridView 列自适应宽度 设置

    代码: Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; 或者设置DataGridView的AutoSizeColu ...

  9. 无法为请求的 Configuration 对象创建配置文件 错误原因

    Configuration config = WebConfigurationManager.OpenWebConfiguration("~"); 无法为请求的 Configura ...

  10. php关于private、public成员变量访问问题

    如果类里面定义了__get($name)方法,则不论类的private成员还是public成员,都能够在类的外面通过类似$class->name访问到.如果是public变量,则不会自动调用ge ...