概要
iScroll 4 这个版本完全重写了iScroll这个框架的原始代码。这个项目的产生完全是因为移动版webkit浏览器(诸如iPhone,iPad,Android这些系统上广泛使用)提供了一种本地化的方式来对一个限定了高度和宽度的元素的内容进行滑动。很不幸的是,这种情况下所有的web应用的页面就不能够包含具有position:absolute的头、页尾或者是一个内容可滚动的中间区域。
然而,Android系统最新修订版已经可以支持这种功能了(尽管支持的力度还不是特别好),Apple公司似乎不太情愿将one-finger滑动事件运用到div元素上。
除了以前版本的iScroll的特性以外,iScroll 4还包括如下的特性:
(1)缩放(Pinch/Zoom)
(2)拉动刷新(Pull up/down to refresh)
(3)速度和性能提升
(4)精确捕捉元素
(5)自定义滚动条
友情提示:iScroll 4并不是iScroll 3的简易替代版本,API文档已经不一样了。同时考虑到此版本正处于测试期,一些API
可能会有细微的变化。
使用指南
在此文档中你会发现很多例子来教会你如何快速上手iScroll脚本库。参看文中的demo小例子并仔细阅读此文档,可能有点小无聊,但是这篇文章中却是iScroll这个脚本库的精髓之所在哦。
iScroll需要对所要进行滚动的元素进行初始化,并且不限定一个页面中使用iScroll的元素的个数(这里不考虑您的硬件配置)。滚动元素中内容的类型和长度在一定程度上将会影响iScroll脚本库里可以同时使用的元素的个数。
使用iScroll这个脚本库时,DOM树的结构要足够简单,移除不必要的标签,尽量避免过多的标签嵌套使用。
最优的使用iScroll的结构如下所示:
<div id="wrapper">
<ul>
<li></li>
.....
</ul>
</div>
在这个小例子中,ul标签将会被滚动。iScroll一定要与滚动内容外面的wrapper进行联系才会产生效果。
【注意事项】:
只有wrapper里的第一个子元素才可以滚动,如果你想要更多的元素可以滚动,那么你可以试试下面的这种写法:
<div id="wrapper">
<div id="scroller">
<ul>
<li></li>
...
</ul>
<ul>
<li></li>
...
</ul>
</div>
</div>
在这个例子中,scroller这个元素可以滚动,即便它包含两个ul元素
iScroll必须在调用之前实例化,你可以在下面几种情况下对iScroll进行实例化:
(1)onDOMContentLoaded
(2)onLoad
(3)以内联inline方式
下面我们逐个来讲讲这三种用法的优缺点
ONDOMContentLoaded
适用于滚动内容只包含文字、图片,并且所有的图片都有固定的尺寸
使用方法:(在head标签中添加如下代码)
<script src="iscroll.js"></script>
<script>
var myscroll;
function loaded(){
myscroll=new iScroll("wrapper");
}
window.addEventListener("DOMContentLoaded",loaded,false);
</script>
注意:myscroll这个变量是全局的,因此你可以在任何地方调用它的函数
onLoad
有些时候在DOMContentLoaded的状态下就初始化iScroll其实是有点草率的,因此此时页面的资源可能还没有全部加载
完毕。如果你遇到了一些很怪异的行为可以试试下面的写法:
<script src="iscroll.js"><script>
<script>
var myscroll;
function loaded(){
setTimeout(function(){
myscroll=new iScroll("wrapper");
},100 );
}
window.addEventListener("load",loaded,false);
</script>
这种情况下iScroll会在页面资源(包括图片)加载完毕100ms之后得到初始化,这应该是一种比较安全的调用iScroll的
方式。
inline初始化
这种情况会在页面加载到js的时候就进行调用,此方法不推荐使用,但是很多javascript的大牛都在用这种方式,我又
有什么理由不赞成呢?
<script src="iscroll.js"></script>
<div id="wrapper">
<ul>
<li></li>
...
</ul>
</div>
<script>
var myscroll=new iScroll("wrapper");
</script>
不过建议你使用一些框架的ready方法来安全调用iScroll(比如jquery里的ready())。
iScroll里传递的参数
iScroll里的第二个参数允许你自定义一些内容,比如下面的这段代码:
<script>
var myscroll=new iScroll("wrapper",{hScrollbar:false, vScrollbar:false});
</script>
第二个参数通常都是一个对象,像上面的这个例子里就设定了不显示滚动条。常用的参数如下:
hScroll false 禁止横向滚动 true横向滚动 默认为true
vScroll false 精致垂直滚动 true垂直滚动 默认为true
hScrollbar false隐藏水平方向上的滚动条
vScrollbar false 隐藏垂直方向上的滚动条
fixedScrollbar 在iOS系统上,当元素拖动超出了scroller的边界时,滚动条会收缩,设置为true可以禁止滚动条超出
scroller的可见区域。默认在Android上为true, iOS上为false
fadeScrollbar false 指定在无渐隐效果时隐藏滚动条
hideScrollbar 在没有用户交互时隐藏滚动条 默认为true
bounce 启用或禁用边界的反弹,默认为true
momentum 启用或禁用惯性,默认为true,此参数在你想要保存资源的时候非常有用
lockDirection false取消拖动方向的锁定, true拖动只能在一个方向上(up/down 或者left/right)
为了保持资源的完整性,建议去除滚动条
拉动刷新(pull to refresh)
自从Twitter和一些Apple的本地化应用出现了这个效果之后,这个效果就变得非常流行。你可以看看这儿先一睹为快。
我最近把"pull to refresh"这个部分单分出来作为iScroll的一个额外插件。你可以点击这儿看看pull to refresh是如何工作
滴。你只需要做的就是自定义pullDownAction()这个方法。你可能需要一个ajax来加载新的内容,不过一旦DOM树发生
了变化要记得调用refresh这个方法来。需要记住的是在例子中我们加了1秒的延迟来模拟网络的延迟效果。当然,如果
你不想使用这个延迟,那就把setTimeout方法去掉就行了。
缩放(pinch / zoom)
我们不得不面对一个事实,那就是光有滚动其实没什么新意的。这就是为什么在iScroll 4这个版本里我们允许你可以放
大和缩小。想要这个功能,只需要设置放大的参数zoom 为true即可实现利用手势来放大和缩小。你可以看看这儿。
双击放大和缩小的功能在iScroll 4里也是得到支持的。要使用缩放功能,你至少需要如下配置:
var myScroll =new iScroll("wrapper",{zoom:true});
如果你想对缩放功能进行深度的自定义的话可以使用下面的一些选项:
zoomMax 指定允许放大的最大倍数,默认为4
【注意事项】:如果想要图片缩放的效果很好的话要把他们放到硬件的合成层中。通俗点说,就是在所有需要缩放的
img元素上使用-webkit-transform:translate3d(0,0,0)来实现,而且尤为重要的是,硬件的加速会占用大量
资源,要谨慎使用,否则你的应用可能就此崩溃。
捕捉元素(snap and snap to element)
捕捉的功能会促使scroller去重新定义位置,这样可以制作更加花哨的传送带效果。点击这里有个小例子。
默认情况下,iScroll将scroller分成四分体,或者是相同大小的wrapper。iScroll 4加入了这个属性允许捕捉scroller里的
任何元素,不考虑外部wrapper的大小。如果你想要实现这样的传送带效果,我建议你使用“quadrant”分割。最佳的设
置如下:
var myscroll=new iScroll("wrapper",{
snap:true,
momentum:false,
hScrollbar:false,
vScrollbar: false
});
捕获元素,可以通过传递一个字符串来作为查询条件,如下:
var myscroll=new iScroll("wrapper",{
snap:"li",
momentum:false,
hScrollbar:false,
vScrollbar:false
});
在这个例子中scroller可以捕捉到滚动区域中最左上角的li元素
自定义滚动条(custom scrollbars)
在iScroll 4这个版本中,可以利用一系列的css来自定义滚动条的呈现。可以给滚动条添加一个class参数,如下:
var myscroll=new iScroll("wrapper",{
scrollbarClass: "myScrollbar"
});
你可以点击这里看一个小例子,在这个小例子里,myScrollbarH这个类被添加到了水平滚动条上,myScrollbarV这个
类则被添加给了垂直方向上的滚动条上了。需要提醒的是,滚动条是由两个元素组合而成的:容器和显示器。容器同
wrapper的高度相同,而显示器则代表的是滚动条本身。
滚动条的HTML结构如下:
<div class="myScrollbarV">
<div></div>
</div>
.myscrollbarV{
position:absolute;z-index:100;width:8px;bottom:7px;top:2px;right:1px;
}
.myScrollbarV > div {
position:absolute;
z-index:100;
width:100%;
/* The following is probably what you want to customize */
background:-webkit-gradient(linear, 0 0, 100% 0, from(#f00), to(#900));
border:1px solid #800;
-webkit-background-clip:padding-box;
-webkit-box-sizing:border-box;
-webkit-border-radius:4px;
-webkit-box-shadow:inset 1px 1px 0 rgba(255,255,255,0.5);
}
通用方法:
(1)refresh 在DOM树发生变化时,应该调用此方法
(2)scrollTo() 滚动到某个位置
eg: myscroll.scrollTo(0,10,200,true);
(3)scrollToElement() 滚动到某个元素
eg: myscroll.scrolToElement("li:nth-child(10)",100);
(4)detroy() 完全消除myscroll及其占用的内存空间
eg: myscroll.destroy()
分享到:
相关推荐
【标题】"安卓Android源码——jqmDemo_static.zip" 提供的是...以上就是关于"安卓Android源码——jqmDemo_static.zip"的详细知识点解析,这个项目提供了一个很好的学习平台,可以深入了解混合式应用开发和移动UI设计。
源码分析意味着我们将探讨代码级别的实现,可能是解析某个开源库的内部工作机制,或者如何利用源码学习和定制功能。而“工具”可能是指用于处理滚动效果的开发工具、框架或者插件,例如jQuery、React、Vue等前端框架...
博客链接未提供具体内容,但通常,源码解析会涉及以下几个关键部分: - **事件监听**:识别用户何时开始下拉,何时达到触发刷新的阈值。 - **动画效果**:添加适当的CSS动画,如回弹效果,使刷新动作更直观。 - **...
对于前端Web开发,有jQuery插件如Infinite Scroll和iScroll,以及React、Vue、Angular等框架内的组件,如React-Swipeable-Views和vue-infinite-loading。 在PullToRefreshAndLoad-master这个项目中,很可能包含了...
内容概要:本文档介绍了MySQL MCP(MySQL Multi-Channel Protocol)的基本使用方法和常见案例。MySQL MCP提供高效的数据库连接池和负载均衡功能,支持读写分离、事务处理、批量操作以及连接池监控等功能。文档详细描述了如何安装和配置MySQL MCP,包括创建配置文件`mcp_config.json`,并通过多个使用案例展示了其功能。案例包括连接数据库、实现读写分离、处理事务、执行批量插入和监控连接池状态。此外,还介绍了高级用法如自定义负载均衡策略和故障转移处理,以及性能优化建议,如合理设置连接池大小、监控连接使用情况、设置合理的超时时间和使用预编译语句。; 适合人群:具备一定数据库操作基础,尤其是对MySQL有一定了解的研发人员和数据库管理员。; 使用场景及目标:①需要高效管理数据库连接的应用系统;②实现读写分离,提高数据库读取性能;③确保事务处理的完整性和一致性;④进行批量数据插入操作;⑤监控和优化连接池性能,防止连接泄漏;⑥配置自定义负载均衡策略和故障转移机制。; 其他说明:在实际应用中,用户可以根据具体需求灵活配置MySQL MCP,以优化数据库操作性能和稳定性。建议在使用过程中结合性能监控工具,定期检查连接池状态,并根据实际情况调整配置参数。
哈工大大作业论文:hello的一生
文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。 Vue 3是一款备受瞩目的JavaScript框架,它采用了基于Proxy的响应式系统,显著提升了性能和调试能力。其Composition API带来了更高效的逻辑组织方式,使代码复用变得轻而易举。Tree-shaking支持让打包后的文件体积更小,进一步优化了应用性能。Vue 3还与TypeScript深度集成,提供了更完善的类型推导,让开发过程更加顺畅。无论是构建大型应用还是小型项目,Vue 3都能凭借其出色的性能和灵活的架构,帮助开发者高效完成任务,是现代Web开发的理想选择。
Visio学习相关文档
内容概要:本文介绍了利用COMSOL软件对锂离子电池中锂枝晶的多枝晶随机扰动生长进行模拟的方法。通过相场、浓度场和电场三种物理场的综合分析,详细探讨了锂枝晶的生长过程及其对电池性能的影响。文章首先阐述了锂枝晶生长的重要性和研究背景,接着描述了模型的具体构建方法,包括参数设置、物理场定义以及模拟过程中的关键步骤。最后展示了模拟结果,并讨论了这些结果对于理解和优化锂离子电池的意义。 适合人群:从事锂离子电池研究的专业人士、材料科学家、物理学家及相关领域的研究人员。 使用场景及目标:适用于需要深入了解锂枝晶生长机理及其对电池性能影响的研究项目;旨在提高锂离子电池的安全性和使用寿命。 其他说明:文中提供的COMSOL代码示例可以帮助读者快速上手并进行相关实验验证。
因文件较多,数据存放网盘,txt文件内包含下载链接及提取码,永久有效。失效会第一时间进行补充。样例数据及详细介绍参见文章:https://blog.csdn.net/T0620514/article/details/147962629
基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目),个人经导师指导并认可通过的高分设计项目,评审分98分,项目中的源码都是经过本地编译过可运行的,都经过严格调试,确保可以运行!主要针对计算机相关专业的正在做大作业、毕业设计的学生和需要项目实战练习的学习者,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的P
内容概要:本文档详细介绍了MySQL数据库在Windows和Linux系统上的安装与配置方法。对于Windows系统,涵盖了从下载、解压、配置环境变量、编写配置文件、安装服务、初始化数据库到更改密码和授权用户的完整流程。针对Linux系统,则推荐使用Docker进行安装,包括拉取镜像、运行容器、进入容器、查看容器IP地址以及增加远程访问权限等步骤。此外,还介绍了通过命令行和图形化工具(如MySQL Workbench和Navicat)连接MySQL数据库的方法。 适合人群:适合初学者和有一定经验的数据库管理员,特别是那些需要在不同操作系统环境中部署和管理MySQL数据库的技术人员。 使用场景及目标:①帮助用户掌握MySQL在Windows和Linux(基于Docker)两种环境下的安装配置;②指导用户完成MySQL的基本操作,如用户管理、权限分配和服务启动;③提供多种连接方式,确保用户能够顺利地通过命令行或图形界面工具访问和管理MySQL数据库。 阅读建议:由于文档内容较为详尽,建议读者按照实际操作系统环境选择性阅读相关章节,并在实践中逐步理解和掌握每个步骤的具体操作。同时,对于初次接触MySQL的用户,可以先尝试简单的命令行操作,再逐步过渡到使用图形化管理工具。
文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。 Vue 3是一款备受瞩目的JavaScript框架,它采用了基于Proxy的响应式系统,显著提升了性能和调试能力。其Composition API带来了更高效的逻辑组织方式,使代码复用变得轻而易举。Tree-shaking支持让打包后的文件体积更小,进一步优化了应用性能。Vue 3还与TypeScript深度集成,提供了更完善的类型推导,让开发过程更加顺畅。无论是构建大型应用还是小型项目,Vue 3都能凭借其出色的性能和灵活的架构,帮助开发者高效完成任务,是现代Web开发的理想选择。
内容概要:本文详细介绍了基于MATLAB 2021b的AC DC混合微电网Simulink模型的设计与实现。该模型涵盖了交直流混合微电网、AC DC双向功率变换器和功率控制等关键组件。文中探讨了AC DC混合微电网的概念及其重要性,特别是在整合可再生能源方面的优势。通过Simulink建模,实现了对微电网中能量的高效管理和分配,包括对不同能源的调度、负载响应和能量存储系统的管理。此外,还讨论了模型的实际应用场景和未来的发展方向。 适合人群:从事电力系统研究、微电网设计与仿真、可再生能源集成等相关领域的研究人员和技术人员。 使用场景及目标:①用于研究和分析AC DC混合微电网的运行特性;②支持实际工程项目的规划和实施;③探索提高能源利用效率的方法。 其他说明:该模型适用于MATLAB 2021b版本,模型较大,需要较高的计算资源。
Visio学习相关文档
qlistwidget使用指南
水彩插画儿童美术教学课件素材模板
内容概要:本文探讨了利用COMSOL软件对土石混合体中孔隙渗流条件下细颗粒迁移运动的数值仿真研究。研究对象主要集中在河流、堤防等水利工程中的土石混合体,重点在于细颗粒在孔隙水流动下的侵蚀、移动和沉积现象。文中详细介绍了如何在COMSOL中构建土石混合体的几何和物理模型,设定相关参数和边界条件,进而模拟细颗粒的迁移路径及其速度。此外,还讨论了多场(如渗流场、变形场、应力场、损伤场)和多相介质(如土颗粒集合体、块石、空隙、孔隙)之间的耦合作用,以及骨架结构变形对整个系统稳定性的影响。最终,通过对仿真结果的分析,揭示了细颗粒迁移运动的基本规律,为预测和评估土石混合体的稳定性和结构安全性提供了理论支持。 适合人群:从事岩土工程、水利水电工程及相关领域的科研工作者和技术人员。 使用场景及目标:适用于需要深入了解土石混合体内部力学特性及长期性能变化的研究项目,旨在提高对复杂环境下土石混合体行为的理解,从而优化工程设计方案并确保施工质量。 其他说明:本研究不仅限于理论探讨,还包括实际应用案例分析,强调了数值仿真工具在解决现实世界问题时的重要性和实用性。
可视化大屏,大数据,毕业设计,mysql数据库