水平方向的滑动(iscroll5)

html

<div id="wrapper">  
    <div id="scroller">  
        <ul>  
            <li>1</li>  
            <li>2</li>  
            <li>3</li>  
            <li>4</li>  
            <li id="a">5</li>  
            <li>6</li>  
            <li>7</li>  
            <li>8</li>  
            <li>9</li>  
            <li>10</li>  
            <li>11</li>  
            <li>12</li>  
            <li>13</li>  
            <li>14</li>  
            <li>15</li>  
            <li>16</li>  
            
        </ul>  
    </div>  
</div> 
    

css

 #wrapper {  
                position: absolute;  
                z-index: 1;  
                top: 10px;  
                bottom: 10px;  
                height: 33px;  
                left: 0;  
                width: 100%;  
                background: #ccc;  
                overflow: hidden;  
            }  
              
            #scroller {  
                position: absolute;  
                z-index: 1;  
                -webkit-tap-highlight-color: rgba(0, 0, 0, 0);  
                width: 1600px;  
                height: 100%;  
                background-color: #a00;  
                -webkit-transform: translateZ(0);  
                -moz-transform: translateZ(0);  
                -ms-transform: translateZ(0);  
                -o-transform: translateZ(0);  
                transform: translateZ(0);  
                -webkit-touch-callout: none;  
                -webkit-user-select: none;  
                -moz-user-select: none;  
                -ms-user-select: none;  
                user-select: none;  
                -webkit-text-size-adjust: none;  
                -moz-text-size-adjust: none;  
                -ms-text-size-adjust: none;  
                -o-text-size-adjust: none;  
                text-size-adjust: none;  
            }  
              
            #scroller ul {  
                list-style: none;  
                padding: 0;  
                margin: 0;  
                width: 100%;  
                height: 100%;  
                text-align: center;  
            }  
              
            #scroller li {  
                display: block;  
                float: left;  
                width: 100px;  
                height: 100%;  
                padding-top: 10px;  
                border-right: 1px solid #ccc;  
                background-color: #555555;  
                color: white;  
                font-size: 14px;  
            }

js

//阻止默认事件
        document.addEventListener('touchstart',function(ev){
            ev.preventDefault()
        },{passive:false});

//IScroll会获取容器内的第一个子元素进行滚动,其它子元素会被忽略,且该子元素(scroller)必须有固定的高度(或宽度),在这里,即ID为scroller的元素可以滚动  
var myScroll = new IScroll('#wrapper',{  
    mouseWheel : true,      //鼠标滚轮支持  
    scrollbars : false,      //滚动条支持  
    scrollY : false,         //滚动方向(垂直)  
    scrollX : true,         //滚动方向(水平)  
    bounce : true,          //边界时的反弹动画,默认true  
    click : true,           //IScroll默认禁止了点击事件,如需绑定点击事件,请将该参数值设为true  
    freeScroll : true,      //当需要执行两个纬度上的滚动时(即横向、纵向都开启),设置该参数,默认为false  
    startX : 0,             //滚动条开始的位置(横坐标)  
    startY : 0,             //滚动条开始的位置(纵坐标)  
    tap : true,             //设置为true时,允许为用户点击或者触摸(并没有滚动时)触发一个自定义事件,或者设置值为一个自定义事件名称的字符串  
    snap : 'li'             //对齐(根据元素li对齐切割整个容器)  
});  
  
console.log(myScroll.options);      //通过options对象访问myScroll实例的配置信息  
  
//给li绑定点击事件  
$('#scroller ul li').on('click',function(){  
    console.log($(this).html());  
})  
  
//绑定tap自定义事件  
$('#wrapper').on('tap',function(){  
    console.log('开始滚动了');  
})  
  
myScroll.scrollTo(0,-250);      //控制滚动条到任意的位置  
  
myScroll.scrollBy(0,-10);       //从当前位置向下滚动10个像素  
  
//滚动到该元素的位置,第二个参数为时间,第三个第四个参数为偏移量(如果设置这两个参数为true,该元素将会显示在容器的中间)  
myScroll.scrollToElement('#a',1000,0,0);  
  
//关于snap对齐后操作的方法  
myScroll.goToPage(0,5,1000);    //滚动到对齐后的第五页(即第五个li的位置)  
myScroll.next();    //当前位置的下一页  
myScroll.prev();    //当前位置的上一页  
  
//IScroll需要知道容器确切的尺寸,如果容器大小发生了变化,需要使用刷新方法  
myScroll.refresh();  
  
//自定义事件  
myScroll.on('scrollEnd',function(){  
    console.log('滚动结束');  
    console.log(this.x + '&' + this.y);     //当前位置  
    console.log(this.directionX + '&' + this.directionY);   //最后的方向  
    console.log(this.currentPage);      //当前对齐捕获点  
})  
  
//销毁  
myScroll.destroy();  
  
//当滚动到底部时的myScroll.x/y  
console.log(myScroll.maxScrollX + '&' + myScroll.maxScrollY);  

要引入的js文件
<script src="js/iscroll5.js" type="text/javascript" charset="utf-8"></script>
<script src="js/jquery.min.js" type="text/javascript" charset="utf-8"></script>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,796评论 1 92
  • 在现在的前端开发中,前后端分离、模块化开发、版本控制、文件合并与压缩、mock数据等等一些原本后端的思想开始...
    Charlot阅读 5,489评论 1 32
  • 版权声明:本文为博主原创文章,未经博主允许不得转载。 webpack介绍和使用 一、webpack介绍 1、由来 ...
    it筱竹阅读 11,233评论 0 21
  • 我便有这两个人的角色 他忙碌公事 她年少无知 而我哪个都要 我的角色便是我的心事
    一片土一条河阅读 129评论 0 0
  • 安居立足,安身立命。房子之于每个家庭,就是这样的重要。对于我的鄄城某个楼盘买房的伙计来说,这个房子,却让他陷入无尽...
    幸福的花儿_1b59阅读 381评论 0 0