微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

学习使用jquery iScroll.js移动端滚动条插件

大家在日常工作中最常用的插件是什么,jQurey?Lazyload?但是这些都是在PC端,但是在移动端最常用的插件莫过于iScroll了,iScroll到底是什么东西,应该怎么用?iScroll是个很强大的插件,我也只是略懂皮毛,这里我们简单的介绍一下。 iScroll的产生:

iScroll的产生完全是因为移动版webkit浏览器,例如在iPhone,Android 的移动设备上。 iScroll的使用方法

iScroll的原理是外层有一个溢出隐藏(overflow:hidden;)的DOM,然后这个区域内的第一个DOM结构会被实例化,其包裹的内容可以纵向或者横向的滚动,所以在使用iScroll的时候,滚动元素要尽量的简单,减少DOM个数,减少嵌套,因为DOM结构越是复杂iScroll运行起来就越是吃力,有可能会造成某些节点显示不正常的情况。 所以,推荐使用的DOM结构如下:

rush:xhtml;">
//只有第一个DOM结构(ul)被实例化,这个DOM可以纵向或者横向的滚动, //多出的内容会被wrapper的样式hidden。
  • 1
  • 2
  • 3
  • 注意:再次重申,只有wrapper里的第一个子元素(ul)才可以被实例化滚动,并且要结合外层的DOM(wrapper)才能实现滚动。 如果 wrapper中有多个ul怎么办?很简单,记住那句话,只有wrapper里的第一个子元素(ul)才可以被实例化滚动:

    rush:xhtml;">
    irst"> //只有第一个DOM结构(ul)被实例化,这个DOM可以纵向或者横向的滚动, //多出的内容会被wrapper的样式hidden
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    看到了吧,只有first会被实例化。 注意:这里第一个DOM结构的ID(first)可以不写,我只是为了方便大家识别才写了个ID,但是最外层的ID(wrapper)一定要写,因为在JS实例化的时候需要填写这个ID:

    rush:js;"> var myScroll = new iScroll("wrapper");

    iScroll应该如何实例化

    既然说道了实例化,我们应该在什么时候实例化?据说实例化的方法有很多,但是我没用过,我只说一种: (1)在HTML(uw3c.html)页面底部(body之后html之前)加载iscroll.js与当前页面的uw3c.js,这样能确保HTML的DOM结构能加载出来。 (2)在JS插入页面DOM结构和数据之前实例化iScroll,也就是在JS的最开始实例化,因为之后可能会使用JS来插入DOM或者数据,这样以来能确保在插入数据之前iScroll已经实例化了。

    HTML://HTML结构

    rush:xhtml;"> ...code... //插入iscroll.js文件 //插入本页面JS文件

    JS://JS文件内容

    rush:js;"> var myscroll; function iscroll(data){ //实例化iScroll myscroll=new iScroll("wrapper"); pageData(data); } function pageData(obj){ $("body").html(obj); myscroll.refresh();//当DOM结构发生变化的时候,需要刷新iScroll } iscroll("
    pagedata
    ");

    iScroll中的参数:

    在实例化iScroll的时候,可以传入两个参数,第一个参数是实例化的外层的DOM的ID,第二个参数是iScroll执行方法的对象:

    rush:js;"> var myscroll=new iScroll("wrapper",{hScrollbar:false}); 或者 var opts = { vScroll:false,//禁止垂直滚动 snap:true,//执行传送带效果 hScrollbar:false//隐藏水平方向上的滚动条 }; var myscroll = new iScroll("wrapper",opts);

    第二个参数内容如下,这个参数会控制iScroll的效果

    rush:xhtml;"> hScroll false 禁止横向滚动 true横向滚动 认为true vScroll false 禁止垂直滚动 true垂直滚动 认为true hScrollbar false隐藏水平方向上的滚动条 vScrollbar false 隐藏垂直方向上的滚动条 fadeScrollbar false 指定在无渐隐效果时隐藏滚动条 hideScrollbar 在没有用户交互时隐藏滚动条 认为true bounce 启用或禁用边界的反弹,认为true momentum 启用或禁用惯性,认为true,此参数在你想要保存资源的时候非常有用 lockDirection false取消拖动方向的锁定,true拖动只能在一个方向上(up/down 或者left/right)

    iScroll中的方法

    当然在第二个参数中,也有一些方法可以执行: (1)scrollTo(x,y,time,relative)方法:传入4个参数:X轴滚动距离,Y轴滚动距离,效果时间,是否相对当前位置。所以例如:

    rush:js;"> //在200毫秒的时间内,Y轴向上滚动100像素; uw3c.scrollTo(0,-100,200) //在200毫秒的时间内,相对于当前位置,X轴向左滚动100像素; uw3c.scrollTo(-100,200,true)

    (2)refresh()方法:在DOM结构发生改变之后,需要刷新iScroll,否则滚动插件会实例化的不准确:

    rush:js;"> uw3c.refresh();//刷新iScroll

    (3)onPosChange,有没有一个方法能返回位置的变化?你可以查询一下自己所用的iScroll中有没有onPosChange方法

    rush:js;"> onPosChange:function(x,y){ if(y < -200){ //如果Y周向上滚动200像素,$("#uw3c")就显示,否则就隐藏。 $("#uw3c").show(); }else{ $("#uw3c").hide(); } }

    (4)onScrollEnd:滚动结束时执行的事件,如果想在滚动结束时出发摸个事件,这个方法就拍上用处了:

    rush:js;"> //滚动结束后,执行的方法,滚动后会出现提示框alert("uw3c.com") onScrollEnd:function(){ alert("uw3c.com"); }

    (5)onRefresh:在DOM结构发生改变之后,需要刷新iScroll,否则滚动插件会实例化的不准确,onRefresh是刷新完iScroll会执行的方法。 (6)onBeforeScrollStart:开始滚动前的时间回调,认是阻止浏览器认行为 。 (7)onScrollStart:开始滚动的回调。 (8)onBeforeScrollMove:在内容移动前的回调。 (9)onScrollMove:内容移动的回调。 (10)onBeforeScrollEnd:在滚动结束前的回调。 (11)onTouchEnd:手离开屏幕后的回调。 (12)onDestroy:销毁实例的回调。

    以上就是本文的全部内容,希望对大家熟练使用iScroll.js移动端滚动条插件有所帮助。

    版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

    相关推荐


    页面搜索关键词突出 // 页面搜索关键词突出 $(function () { $(&quot;.list_r&quot;).find(&#39;span&#39;).css({ // 每次搜索开始,先把所有字体颜色恢复初始状态 &#39;color&#39;: &quot;#838792&quot;
    jQuery实时显示日期、时间 html: &lt;span id=&quot;time&quot;&gt;&lt;/span&gt; js: &lt;script src=&quot;Js/jquery.min.js&quot;&gt;&lt;/script&gt; &lt;%--引用jQuery
    jQuery 添加水印 &lt;script src=&quot;../../../../AJs/jquery.min.js&quot;&gt;&lt;/script&gt; &lt;script type=&quot;text/javascript&quot;&gt; $(document).re
    中文:Sys.WebForms.PageRequestManagerParserErrorException:无法分析从服务器收到的消息,之所以出现此错误,常见的原因是:通过调用Response.Write()修改相应时,将启用响应筛选器、HttpModules或服务器追踪。详细信息:分析附近的“输
    1. 用Response.Write方法 代码如下: Response.Write(&quot;&lt;script type=&#39;text/javascript&#39;&gt;alert(&quot;XXX&quot;);&lt;/script&gt;&quot;); 此方只能调用内部函数
    Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按钮调用OnClientClick事件,添加dom元素及样式。 2.当Click中逻辑执行完后,在Click中调用js方法删除掉刚才添加的dom元素。 1 &lt;%@ Page Language=&quot;C#&quot; Auto
    .Net后台调用js,提示、关闭当前窗体、打开新窗体 Response.Write(&quot;&lt;script&gt;window.alert(&#39;支付成功!&#39;);window.open(&#39;/JkCommerce/&quot; + href + &quot;&#39;,&
    思路: 1.ajax请求后台方法获取数据。 2.通过jquery将请求到的数据显示在页面上。 前台 &lt;div class=&quot;sc_con&quot; id=&quot;bbsearch&quot;&gt; &lt;input type=&quot;text&quot; class=&
    &lt;html&gt; &lt;title&gt;&lt;/title&gt; &lt;head&gt; &lt;meta charset=&quot;utf-8&quot;&gt; &lt;style type=&quot;text/css&quot;&gt; .divone{width:100
    jQuery表单验证提交:前台验证一(图文+视频)