今天开发ipad webapp时,遇到个问题就是在支持内部滚动(overflow:scroll)的页面中,在滚到到最极端(最上或者最下时),会拖动整个页面,带来不好的用户体验。

方法一,从网上找到的:

function preventOverScroll(scrollPane) {
// See http://www.quirksmode.org/js/events_order.html
var CAPTURE_PHASE = true; // happens first, outside to inside
var BUBBLE_PHASE = false; // happens second, inside to outside // These variables will be captured by the closures below
var allowScrollUp = true, allowScrollDown = true, lastY = 0; scrollPane.addEventListener
(‘touchstart’,
function (e) { // See http://www.w3.org/TR/cssom-view/#dom-element-scrolltop
allowScrollUp = (this.scrollTop > 0);
allowScrollDown = (this.scrollTop < this.scrollHeight – this.clientHeight); // Remember where the touch started
lastY = e.pageY;
},
CAPTURE_PHASE); // If the touch is on the scroll pane, don’t let it get to the
// body object which will cancel it
scrollPane.addEventListener
(‘touchmove’,
function (e) {
var up = (event.pageY > lastY);
var down = !up;
lastY = event.pageY; // Trying to start past scroller bounds
if ((up && allowScrollUp) || (down && allowScrollDown)) {
// Stop this event from propagating, lest
// another object cancel it.
e.stopPropagation();
} else {
// Cancel this event
event.preventDefault();
}
},
CAPTURE_PHASE);
}

方法二自己想出来的,因为我发现非最极端(非最上或者最下时)时,就不会拖动整个页面,那么问题就简单了:

       scrollPane.addEventListener('touchstart', function(){
if(this.scrollTop === 0){
//滚动到1
this.scrollTop =1;
}else if(this.scrollTop == this.scrollHeight - this.clientHeight){
//滚动到最低端-1
this.scrollTop =this.scrollHeight - this.clientHeight -1;
}
}, true);

  

  

ios下使用overflow scroll情况下,到达最极端的情况时会拖动整个页面的解决办法的更多相关文章

  1. 在IE11下设置SharePoint Server 2013却遇到“需要 Internet Explorer 才能使用此功能。”的解决办法

    就在昨天顺利升级到Windows 8.1 随之IE也升级到了IE11,但是当打开IE11设置SharePoint Server 2013的时候遇到了一些小情况: Figure 1使用Windows 8 ...

  2. Win7下VS2010使用“ASP.Net 3.5 Claims-aware Template”创建ClaimsAwareWebSite报"HRESULT: 0x80041FEB"错误的解决办法

    问题描述: 使用VS2010的WIF开发模板创建“Claims-aware ASP.NET Site”.“Claims-aware WCF Service”,下载安装后,创建网站时,报错"H ...

  3. Ubuntu下 安卓 adb 命令报:“insufficient permissions for device: user in plugdev group; ”问题的解决办法

    https://blog.csdn.net/freezingxu/article/details/80893025 在接入设备进行联机调试的时候,遇到了这样的问题: insufficient perm ...

  4. react-native 在iOS上使用http链接的图片地址不显示| iOS9 & iOS10 HTTP 不能正常使用的解决办法

    https://segmentfault.com/a/1190000002933776 今天升级Xcode 7.0 bata发现网络访问失败.输出错误信息 The resource could not ...

  5. win7/10下Qt Creator调试提示:The selected debugger may be inappropriate for the inferior的解决办法

    在win7/10下Qt Creator调试提示:The selected debugger may be inappropriate for the inferior的错误提示内容如下图所示: 一般弹 ...

  6. Windows10下手工强制清理删掉安装版的JRE8导致java.exe无法运行的解决办法

    error:could not open xxxx.jvm.cfg 参考:https://blog.csdn.net/u010102493/article/details/18425267 1.搜索并 ...

  7. 对于pycharm和vscode下,从外部复制文本内容为python字符串内容是会自动加\u202a解决办法

    先来看下这个python3源代码,表面上看没有语法毛病,如果源代码字符串内容是手动复制过来的文本内容,在pycharm和vscode下始终提示: pywintypes.error: (2, 'Shel ...

  8. windows server 2012 下IIS8.5关于“ 配置错误 不能在此路径中使用此配置节”的解决办法

    服务器升级为windows server 2012 r2后,发布在新装的IIS8.5上的网站不能访问,页面显示“500 - 内部服务器错误.” 在服务器上调试后,提示的错误信息为: 配置错误 不能在此 ...

  9. QT中QLineEdit的editingFinished()信号在按下回车时会触发两次的解决办法

    class MyLineEdit : public QLineEdit { Q_OBJECT public: MyLineEdit(QWidget * parent = 0) : QLineEdit( ...

随机推荐

  1. mongodb & macOS

    mongodb & macOS https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/ https://stacko ...

  2. 【ZZ】神与学霸的区别

    神与学霸的共同点是积点都令人发指得高,这也是他们的主要特征,或者说是基本特征.但是他们的区别也是很大的. 平时打电话给普通人:喂在干嘛? 玩 玩什么? 逛街/唱k/打游戏/看电影/睡觉/... 打电话 ...

  3. hdu 4435 bfs+贪心

    /* 题意:给定每个点在平面内的坐标,要求选出一些点,在这些点建立加油站,使得总花费最少(1号点必须建立加油站).在i点建立加油站需要花费2^i. 建立加油站要求能使得汽车从1点开始走遍全图所有的点并 ...

  4. Bone Collector II(hdu 2639)

    题意:求01背包的第k最优值 输入:第一行为T,下面是T组数据,每组数据有n,m,k 代表n件物品,m容量,和题目要求的k,下一行是n个物品的价值,再一行是n个物品的体积 输出:T行答案 /* 类似于 ...

  5. 调用系统相机拍照,保存照片,调用系统裁剪API对照片处理,显示裁剪之后的照片

    package com.pingyijinren.test; import android.annotation.TargetApi; import android.app.Notification; ...

  6. 2017 CCPC 杭州 HDU6273J 区间修改(线段树&差分数组)

    http://acm.hdu.edu.cn/downloads/CCPC2018-Hangzhou-ProblemSet.pdf 解析 线段树区间延迟更新 或 差分数组 两个数   统计2和3的最少的 ...

  7. Java开发笔记(九十九)定时器与定时任务

    前面介绍了线程的几种运行方式,不管哪种方式,一旦调用了线程实例的start方法,都会立即启动线程的事务处理.然而某些业务场景在事务执行时间方面有特殊需求,例如期望延迟若干时间之后才开始事务运行,又如期 ...

  8. 英特尔固态盘 说明书PDF

    http://www.intel.cn/content/www/cn/zh/solid-state-drives/solid-state-drives-ssd.html

  9. apache.commons.lang.StringUtils 使用心得

    原文:http://blog.csdn.net/ye_sheng/article/details/48101901?ref=myread 在Java中我们用的最多的类应该就是String了.对于Str ...

  10. 多路转接模型之poll

    poll系统调用和select类似.也是在指定时间内轮询一定数量的文件描写叙述符,以測试当中是否有就绪者.poll和select效率差点儿相同,仅仅是其使用接口相对简单些,poll不在局限于1024个 ...