使用说明:只要替换选择器:var selector = '.phone_body';

/**
* 阻止iOS中页面弹性回滚,只允许div.scroller的区块有弹性
*/
(function () { var selector = '.phone_body';
var u = navigator.userAgent; if (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) {//安卓手机
//alert("安卓手机");
} else if (u.indexOf('iPhone') > -1) {//苹果手机
//alert("苹果手机");
//window.addEventListener("touchmove", handlePageBounce, false);
//window.addEventListener("touchstart", handlePageBounce, false);
} else if (u.indexOf('Windows Phone') > -1) {//winphone手机
//alert("winphone手机");
} //if ($.os.ios) {
// window.addEventListener("touchmove", handlePageBounce, false);
// window.addEventListener("touchstart", handlePageBounce, false);
//}
function handlePageBounce(evt) {
if (evt.type === "touchstart") {
this._startTouchY = evt.touches[0].screenY;
return;
}
var panel = $(evt.target).closest(selector);
if (panel.length === 0) return evt.preventDefault();
var el = panel.get(0);
var canScroll = el.scrollHeight > el.clientHeight;
var hasTouchOverflow = $(el).computedStyle("-webkit-overflow-scrolling") === "touch";
var hasOverflow = $(el).computedStyle("overflowY") !== "hidden";
var height = parseInt($(el).computedStyle("height"), 10);
if (canScroll && hasTouchOverflow && hasOverflow) {
var currY = evt.touches[0].screenY;
var scrollAtTop = ((this._startTouchY <= currY) && (el.scrollTop === 0));
var scrollAtBottom = ((this._startTouchY >= currY) && ((el.scrollHeight - el.scrollTop) === height));
if (scrollAtTop || scrollAtBottom)
evt.preventDefault();
} else {
evt.preventDefault();
}
}
})();

  

阻止iOS中页面弹性回滚,只允许div.phone_body的区块有弹性的更多相关文章

  1. ios12版本以上键盘唤起后,收回页面不回滚问题

    最近提测后,发现ios升级到12版本之后,引发了调用确认框的组件之后按钮失效问题. 然后开始了升级复现bug的各种操作,最后发现是完成后键盘收起后,页面没有回滚,因为页面整体被推上了一定高度,导致错位 ...

  2. Spring中@Transactional事务回滚

    转载: Spring中@Transactional事务回滚 一.使用场景举例 在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用.下面举个栗子:比如一个部 ...

  3. 重学 Java 设计模式:实战备忘录模式「模拟互联网系统上线过程中,配置文件回滚场景」

    作者:小傅哥 博客:https://bugstack.cn - 原创系列专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 实现不了是研发的借口? 实现不了,有时候是功能复杂度较高难以实 ...

  4. spring事务——try{...}catch{...}中事务不回滚的几种处理方式(转载)

    转载自   spring事务——try{...}catch{...}中事务不回滚的几种处理方式   当希望在某个方法中添加事务时,我们常常在方法头上添加@Transactional注解 @Respon ...

  5. Service中事务不能回滚的解决方式(转)

    1.在service方法里面如果对异常进行了捕获的话,该事务是不会进行回滚的        默认spring事务只在发生未被捕获的 runtimeexcetpion时才回滚.          spr ...

  6. Spring中@Transactional事务回滚(含实例详细讲解,附源码)

    一.使用场景举例 在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用.下面举个栗子:比如一个部门里面有很多成员,这两者分别保存在部门表和成员表里面,在删除 ...

  7. 在Azure DevOps Server(TFS系统)中部署回退/回滚方案(Rollback)

    概述 Azure DevOps Server(之前名TFS)是微软公司实现软件研发.测试和部署一体化的全流程解决方案.在近几年的研发过程中,Azure DevOps Server 大幅增强了软件部署过 ...

  8. Spring中的事务回滚机制

    初学者笔记 问题:在Java项目汇中,添加@Transactional注解,报错之后,事务回滚未生效,数据仍插入数据库中.经查看报错位置位于新增成功之后.空指针异常. 一.特性 先了解一下@Trans ...

  9. Jfinal中手动提交/回滚 事物

    在Jfinal中有个Tx类为事物声明类 在方法或controller上面加@Before({Tx.class})即可,可是这样并不能满足有的业务场景 下面是今天写的手动提交的事物处理方法,希望对大家有 ...

随机推荐

  1. 贪吃蛇的java代码分析(二)

    代码剖析 贪吃蛇是一款十分经典的小游戏,对初入coding的朋友来说,拿贪吃蛇这样一个案例来练手十分合适,并不高的难度和成功后的成就感都是学习所必须的.下面我将依照我当时的思路,来逐步分析实现的整个过 ...

  2. php usort 按照数组中的某个键值排序

    //php usort 按照数组中的某个键值排序 如果第一个参数小于第二个参数 -> 返回小于0的整数如果第一个参数等于于第二个参数 -> 返回等于0的整数如果第一个参数大于于第二个参数 ...

  3. PostgreSQL windows service启动失败

    from: http://stackoverflow.com/questions/1251233/unable-to-run-postgresql-as-windows-servicepg_ctl - ...

  4. PS通过滤色实现简单的图片拼合

     素材如下: 素材一: 雪山 素材二: 月亮  效果: 实现步骤 1.在PS中打开雪山素材一 2.将月亮素材直接拖入雪山所在的图层中 3.锁定置入素材的高宽比(点击一下链状按钮) 4.调整月亮到合适大 ...

  5. [原创]Eclipse Mars 在Ubuntu升级后无法工作的解决方法

    近日将自己的Ubuntu从14.04LTS升级到了16.04LTS,顿时发现Eclipse不能正常工作了,到Ubuntu的官网上转了一圈发现以下解决方案: 症状: [1]Eclipse启动很慢; [2 ...

  6. laravel5.1学习(2)-- artisan tinker命令

    例如:为users表创建20条测试输入 G:\wamp\www\hcmf>php artisan tinker >>> namespace App; => null &g ...

  7. Java多线程代码示例

    package algorithm; class Mythread extends Thread{ String name; public Mythread(String name){ this.na ...

  8. delphi 导出xml文件

    procedure TfrmTallageDetail.ToolButton1Click(Sender: TObject); var Xml: TXMLDocument; Rootbusiness,R ...

  9. error in config file "/etc/rabbitmq/rabbitmq.config"

    记录一次RabbitMQ配置文件配置错误 error信息: dill@ubuntu-vm:/usr/share/doc/rabbitmq-server$ sudo /usr/lib/rabbitmq/ ...

  10. Android应用开发中半透明效果实现方案

    下面是自定义Activity半透明的效果例子:res/values/styles.xml<resources>  <stylename="Transparent " ...