iscroll5使用参考
如何开始
var myScroll = new IScroll(‘#wrapper’);
第一个参数:选择器的字符串或原生元素的引用
比如:
var wrapper = document.getElementById(‘wrapper’);
var myScroll = new Scroll(wrapper);
实例化
iScoll必须在DOM就绪后实例化,主要有以下几各方法:
onload事件,onDOMContentLoaded事件,以内联方式放在你想滚动的html代码后面。
iScoll必须知道滚动区域的宽/高值,如果内容中图片没有明确的宽/高,那么iScroll很有可能在生成错误的滚动区。可以给滚动容器添加position:relative或absolute,这个可以解决一些尺寸计算有误的问题。
onDOMContentLoaded事件
如果滚动的内容只有文字和固定尺寸的图片,你可以使用DOMContentLoaded事件。
var myScroll;
function loaded(){
myScroll = new IScroll(‘#wrapper’);
}
document.addEventListener(‘DOMContentLoaded’,loaded,false);
onLoad事件
有时内容为准备好,DOM未加载完,使用DOMContentLoaded事件有些仓促,可以使用onLoad事件。给浏览器添加100或200的延迟也可以解决一些问题。
var myScroll;
function loaded(){
setTimeout(function(){
myScroll = new IScroll(’#wrapper’);
},100);
}
window.addEventListener(‘load’,loaded,false);
配置
console.dir(myScroll.options);可以在控制台打印出iscoll执行时的配置内容
了解核心
iScroll使用综合技术依赖于浏览器/硬件的本身特点进行滚动。通常情况下你不需要单独配置,iscroll会自动选择引擎。
options.useTransform Default:true
如果设置为false,则使用position:absolute;
options.useTransition Default:true
如果设置为false,则使用requestAnimationFrame来代替。旧机型上效果比较明显。
options.HWCompositing
硬件加速通过设置CSS的transform的translateZ(0) 来启用。当有很多元素而硬件加速跟不上时可以设置为false.
基础特征
options.bounce:true //是否超过实际边界时回弹
options.click:false //覆盖iscroll禁用的默认浏览器事件,比如鼠标点击。
options.disableMouse:false
options.disablePointer:false
options.disableTouch:false //默认检测所有的事件,当知道脚本运行环境时可以禁用某些事件
options.eventPassthrough:false //设置这个值为true,可以在保持原生垂直滚动的基础上添加横向滚动
options.freeScroll:false//没看出有什么特殊效果
options.keyBindings:false //设置为true可以绑定快捷键
options.invertWheelDirection:false //开启滚轮事件后,是否反转方向
options.momentum:true //动力动画是否开启,关闭后性能为提高
options.mouseWhell:false //是否开启滚轮事件兼听,开启后滚轮生效
options.preventDefault:true //事件触发时是否preventDefault();
options.scrollbars:false //是否显示滚动条
options.scrollX
options.scrollY //默认情况下开启垂直滚动
options.startX
options.startY //默认起始值为(0,0),可以指定起始的位置
options.tap //设置为true让iScroll自定义的tap事件
高级选项
options.bounceEasing //定义弹跳动画执行的function
options.bounceTime //定义弹跳动画持续的时长
有用的scroller信息
iScroll存储了许多有用的信息,用来增强你的应用。
myScroll.x/y //当前的位置
myScroll.directionX/Y //最后的方向(-1 向下/向右,0 保持,1 向上/向左)
myScroll.currentPage //当前对齐点的信息,可以配合options.snap:true使用