二、初始化
(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.js阻止了a的行为。解决方法:打开iscroll-probe.js,然后找到preventDefaultException方法。
然后修改为:
// preventDefault: true,
preventDefault: false,//(把这句加上去哦)
preventDefaultException: { tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT|A)$/ }, //(这个后面加|A,因为iscroll阻止了A的默认事件)
1:使用js的插件 目前主流的js库 比如jq 也有手势的插件,2:还有移动端的zepto库 也有手势插件,
3:另外还有个叫QuoJS的手势插件 这个插件不依赖任何的库,
4:早期的应该是用wml语言支持的WMLScript实现。
5:举例:使用iscroll.js实现
1)下载iScroll.js,百度搜索iScroll.js下载即可
2)引入iScroll.js,在要使用滑动效果的地方,引入iScroll.js文件
3)编写规范的html格式
只有如下格式才能实现滑动效果
<div id="wrapper">
<div class="scroll">
这个区域可以滑动
</div>
</div>
如下格式不能滑动
<div id="wrapper">
<div class="other">这个区域可以滑动</div>
<div class="scroll">
这个区域不可以滑动了
</div>
</div>
只有wrapper的第一个子元素才能实现滑动效果。
4)编写js调用代码
var Scroll = new iScroll('wrapper',{hScrollbar:false, vScrollbar:false})
第一参数必需是滑动元素的父元素的id。
主要参数一览:
hScroll: true, 左右滑动,默认为true
vScroll: true,上下滑动
hScrollbar: true, 是否显示y轴滚动条,默认为显示
vScrollbar: true,是否显示X轴滚动条,默认为显示