移动端Iscroll插件用法总结

html-css029

移动端Iscroll插件用法总结,第1张

一、滚动插件,常用于移动端

二、初始化

    (1)html结构:   

        <div class="wrapper">

            只能让第一个子元素滚动

            <div>

                可放入多个子元素

            </div>

        </div>

    (2)css:  外层盒子是定高的

        <1>直接给定一个高度

        <2>在移动端,如果需要滚动,且需要高度全屏

            position: absolute (定位父元素是body)

            top:0

            bottom:0

    (3) 引入iscroll.js

        var myscroll = new IScroll(".wrapper")

三、自定义配置

        var myscroll = new IScroll(".wrapper",{

            scrollX: true,  //能够水平滚动

            scrollY: false , //在水平滚动时,禁止垂直滚动

            snap: "li"  // snap: true

            click: true,

            //如果希望监听滚动事件,则不能引入iscroll.js,

            而需要引入iscroll-probe.js, 同时结合 probeType属性

            probeType: 3 // 也可以是1,2

        })

四、iscroll实例支持的事件

    myscroll.on("scroll",function(){})

    myscroll.on("scrollStart",function(){})

    myscroll.on("scrollEnd",function(){})

    myscroll.on("refresh",function(){})

五、iscoll实例的常用属性

    1. this.currentPage.pageX

    2. this.currentPage.pageY

    3. this.currentPage.x

    4. this.currentPage.y

    5. this.x

    6. this.y

六、实例的方法

    1.myscroll.refresh()  //非常重要的方法,在数据更新后,一定要调用一次该方法

    2. myscroll.scrollTo()

    3. myscroll.scrollBy()

    3. myscroll.goToPage()

可以把问题描述清楚一点吗,我用了iscroll已经有差不多三年了,有修改过一些iscroll源码,描述清楚可能会能帮你解决到问题,我用iscroll已经做了一个比较成熟的组件了,欢迎过来提问。

demo地址:https://github.com/gtdalp/listloading

使用iscroll实现这样的布局可不容易。。。需要前端拥有良好的css功底然后利用js(这里lz用了zeptoJS或者大家可以用jquery)

假设我们有这么一段html

[html] view plaincopy

<div id="wrapperIndexActivity" class="wrapperIndexActivity">

<div class="scrollerActivity" id="scrollerActivity">

<ul>

<li>1</li>

<li>2</li>

<li>3</li>

<li>4</li>

</ul>

</div>

</div>

首先先对ID(wrapperIndexActivity)加载iscroll

[javascript] view plaincopy

var homeScroll = new iScroll("wrapperIndexActivity", {

snap : true,

momentum : false,

hScrollbar : false,

vScrollbar : false,

checkDOMChanges : true,

onScrollEnd : function() {

}

})

对Id所属class附加样式:

[css] view plaincopy

.wrapperIndexActivity{ width:100%height:100%position:relativez-index:1overflow:hiddendisplay: block}

然后需要对ID(scrollerActivity)计算有几幅屏幕可以切换(这里假设有4幅)

[javascript] view plaincopy

$("#scrollerActivity").style({

'width' : document.body.clientWidth * 4 + 'px'

})

对应class需附加样式:

[css] view plaincopy

.wrapperIndexActivity .scrollerActivity{ height:100%float:leftpadding:0overflow:hidden}

再然后对li 让每一个列表项都撑满屏幕

[javascript] view plaincopy

$('#wrapperIndexActivity ul li ').style({

'width' : document.body.clientWidth + "px"

})

对应class附加样式:

[css] view plaincopy

.wrapperIndexActivity .scrollerActivity ul li {-webkit-box-sizing:border-box display:blockheight:100%float:left}

最后刷新iscroll

[javascript] view plaincopy

// 刷新数据

omeScroll.refresh()