大家在日常工作中最常用的插件是什么,jQurey?Lazyload?但是这些都是在PC端,但是在移动端最常用的插件莫过于iScroll了,iScroll到底是什么东西,应该怎么用?iScroll是个很强大的插件,我也只是略懂皮毛,这里我们简单的介绍一下。
iScroll的产生:
iScroll的产生完全是因为移动版webkit浏览器,例如在iPhone,Android 的移动设备上。
iScroll的使用方法:
iScroll的原理是外层有一个溢出隐藏(overflow:hidden;)的DOM,然后这个区域内的第一个DOM结构会被实例化,其包裹的内容可以纵向或者横向的滚动,所以在使用iScroll的时候,滚动元素要尽量的简单,减少DOM个数,减少嵌套,因为DOM结构越是复杂iScroll运行起来就越是吃力,有可能会造成某些节点显示不正常的情况。 所以,推荐使用的DOM结构如下:
<div id="wrapper">//overflow:hidden; <ul> //只有第一个DOM结构(ul)被实例化,这个DOM可以纵向或者横向的滚动, //多出的内容会被wrapper的样式hidden。 <li>1</li> <li>2</li> <li>3</li> </ul> </div>
注意:再次重申,只有wrapper里的第一个子元素(ul)才可以被实例化滚动,并且要结合外层的DOM(wrapper)才能实现滚动。
如果 wrapper中有多个ul怎么办?很简单,记住那句话,只有wrapper里的第一个子元素(ul)才可以被实例化滚动:
<div id="wrapper">//overflow:hidden; <div id="first"> //只有第一个DOM结构(ul)被实例化,这个DOM可以纵向或者横向的滚动, //多出的内容会被wrapper的样式hidden <ul> <li>1</li> <li>2</li> <li>3</li> </ul> <ul> <li>4</li> <li>5</li> <li>6</li> </ul> </div> </div>
看到了吧,只有first会被实例化。 注意:这里第一个DOM结构的ID(first)可以不写,我只是为了方便大家识别才写了个ID,但是最外层的ID(wrapper)一定要写,因为在JS实例化的时候需要填写这个ID:
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结构
<html > <body> ...code... </body> //插入iscroll.js文件 <script type="text/javascript" src="js/iscroll.js" > </script > //插入本页面JS文件 <script type="text/javascript" src="js/uw3c.js" > </script > </html>
JS://JS文件内容
var myscroll; function iscroll(data){ //实例化iScroll myscroll=new iScroll("wrapper"); pageData(data); } function pageData(obj){ $("body").html(obj); myscroll.refresh();//当DOM结构发生变化的时候,需要刷新iScroll } iscroll("<div>pagedata</div>");
iScroll中的参数:
在实例化iScroll的时候,可以传入两个参数,第一个参数是实例化的外层的DOM的ID,第二个参数是iScroll执行方法的对象:
var myscroll=new iScroll("wrapper",{hScrollbar:false}); 或者 var opts = { vScroll:false,//禁止垂直滚动 snap:true,//执行传送带效果 hScrollbar:false//隐藏水平方向上的滚动条 }; var myscroll = new iScroll("wrapper",opts);
第二个参数内容如下,这个参数会控制iScroll的效果:
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轴滚动距离,效果时间,是否相对当前位置。所以例如:
//在200毫秒的时间内,Y轴向上滚动100像素; uw3c.scrollTo(0, -100, 200) //在200毫秒的时间内,相对于当前位置,X轴向左滚动100像素; uw3c.scrollTo(-100, 0, 200, true)
(2)refresh()方法:在DOM结构发生改变之后,需要刷新iScroll,否则滚动插件会实例化的不准确:
uw3c.refresh();//刷新iScroll
(3)onPosChange,有没有一个方法能返回位置的变化?你可以查询一下自己所用的iScroll中有没有onPosChange方法:
onPosChange:function(x,y){ if(y < -200){ //如果Y周向上滚动200像素,$("#uw3c")就显示,否则就隐藏。 $("#uw3c").show(); }else{ $("#uw3c").hide(); } }
(4)onScrollEnd:滚动结束时执行的事件,如果想在滚动结束时出发摸个事件,这个方法就拍上用处了:
//滚动结束后,执行的方法,滚动后会出现提示框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移动端滚动条插件有所帮助。
本文向大家介绍jQuery滚动条插件nanoscroller使用指南,包括了jQuery滚动条插件nanoscroller使用指南的使用技巧和注意事项,需要的朋友参考一下 网站在展示信息时,如果信息量过大,解决方法主要有三种。1.分页,将信息分页显示。2.整页显示,但是页面过长,影响浏览体验。3.使用滚动条,而默认滚动条样式太单一,用户体验不友好。所以我们需要美化滚动条。 美化滚动条最简单的方式就
问题内容: 使用此代码 它是这样显示的主页上的喊话框) 如何删除水平滚动条并修改垂直滚动条的CSS? 问题答案: 在你的CSS:
我正在用html制作一个应用程序,并且需要有一个滚动条。但是,每当我添加一个时,它都会移动所有内容,以便为滚动条提供必要的空间。这搞砸了应用程序的布局。 因此,我需要一种方法,使滚动条简单地覆盖在页面顶部,这意味着页面仍然在它后面。我已经知道如何设计滚动条以使背面透明,我只需要滚动条不占用任何空间。 提前感谢!
问题内容: 当我有一个带有可滚动内容的网页时。使用css属性“ overflow:auto”或“ overflow:visible”,滚动条在桌面浏览器上可见,但是当我在移动浏览器上打开页面时,滚动条仅在尝试滚动时出现。有没有一种方法可以使滚动条在移动设备上始终可见?我尝试了一些JQuery库,但是都没有用。 html代码是微不足道的,我有一个带有IFrame的可滚动div: CSS: 问题答案:
因为部分低版本安卓机型上,如果一个容器通过 position: absolute; 或者 transform: translate3d(x,x,x); 定位,那么在滚动的时候有可能会出现闪烁问题。 为了解决这种bug,我们实现了原生滚动和JS滚动条两种模式,并且可以自由切换。从 v0.3.1 版本开始,默认的滚动条类型就是 "native" ,即默认使用系统原生滚动条。只有当你发现页面存在滚动闪烁
滚 动条(scrollbar)可以用来对图表进行平移操作。 y 轴滚动条 Highstock 在 4.2.6 时支持了 任意坐标轴滚动条,即 x、y 轴都支持了滚动条。 y 轴滚动条相关配置参见 yAxis.scrollbar。 在线试一试(缩放后才会显示 y 轴滚动条) 在 Highcharts 图表中使用滚动条 如果需要在 Highcharts 图表中使用滚动条,只需要将 highcharts