iScroll滚动衔接浏览器原生滚动
来源:互联网 发布:电机控制算法书籍 编辑:程序博客网 时间:2024/04/30 06:21
在使用iScroll做滚动效果时可能会遇到一个问题。
本来页面是这样的,其中下面部分是用iScroll做的滚动,这没有什么问题。
但是如果万一被系统滚动到了下面(弹软键盘等操作都会导致页面无意间滚到下面,隐藏掉地址栏,甚至将iScroll的滚动区域隐藏掉一半)
由于iScroll的滚动会覆盖掉系统的滚动,在iScroll的滚动区域内无论怎么划都不会再能够回去了。
所以这里必须判断在iScroll滚动到尽头仍在往尽头方向滚动的时候,不要禁用系统滚动。
onBeforeScrollStart : function(){},//禁用系统滚动在下面控制onBeforeScrollMove : function(e){var that = this,point = 'ontouchstart' in window && !(/hp-tablet/gi).test(navigator.appVersion) ? e.touches[0] : e,deltaY = point.pageY - that.pointY,newY = that.y + deltaY;if (newY <= that.minScrollY && newY >= that.maxScrollY) {e.preventDefault()}}
1. iScroll默认在onBeforeScrollStart方法中调用e.preventDefault()直接禁用系统滚动,而onBeforeScrollStart中并不知道滚动方向,所以需要将禁用系统滚动的逻辑转移到onBeforeScrollMove中去。
2. onBeforeScrollMove中先算出要滚到的位置,判断还在iScroll的滚动范围内,再禁用系统滚动。超出这个范围就不做任何操作,也就是使用的系统的滚动。
另外需要注意,这样的话,iScroll的弹性功能bounce就不能使用了,否则体验会怪怪的。需要将bounce参数置为false、
- iScroll滚动衔接浏览器原生滚动
- 移动端滚动插件iScroll
- iscroll.js--滚动加载实例
- IScroll 无法上下滚动问题
- 原生JS绑定滑轮滚动事件,兼容浏览器
- iscroll滚轮插件实现纯文字滚动
- iscroll实现上下左右滚动的方法
- web移动端:iscroll实现局部滚动
- iscroll.js移动端滚动插件
- 滚动浮动导航,iscroll结构滚动固定元素
- 原生js阻止滚动
- 无缝滚动原生js
- js原生无缝滚动demo
- 原生javascript制作无缝滚动
- js原生滚动条动画
- JS原生之----滚动条
- 原生js实现无缝滚动
- 原生JS自定义滚动条
- J2SE 必知必会(二)
- What is a DesignPattern? 什么是设计模式
- 场效应管导通条件
- NVI和函数指针代替虚函数
- Teach Yourself Programming in Ten Years--用十年来学编程
- iScroll滚动衔接浏览器原生滚动
- ubuntu(xubuntu) 安装LAMP 环境
- J2SE 必知必会(三)
- GDB调试多线程程序
- 从重视研发到建立高效的研发管理体系
- 编辑器截图
- 从零开始学C++之重载 operator new 和 operator delete 实现一个简单内存泄漏跟踪器
- hive 参数配置
- Visual Studio与C#编程十个实用技巧