阻止iOS中页面弹性回滚,只允许div.phone_body的区块有弹性

使用说明:只要替换选择器: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();
        }
    }
})();

  

时间: 2024-08-06 19:47:32

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

解决在页面中按backspace回滚上一页的问题

//解决在页面中按backspace回滚上一页的问题   document.onkeydown = function(e) {         var ev = document.all ? window.event : e;         var obj = ev.target || ev.srcElement;         var t = obj.type;         if (ev.keyCode == 13) {// 禁用键盘回车事件             return fa

spring中事务的回滚

https://www.cnblogs.com/zeng1994/p/8257763.html(浅谈Spring中的事务回滚) http://www.cnblogs.com/nnngu/p/8627662.html (Spring的编程式事务和声明式事务) 原文地址:https://www.cnblogs.com/lqtbk/p/10729469.html

Spring中@Transactional事务回滚实例及源码

一.使用场景举例 在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用.下面举个栗子:比如一个部门里面有很多成员,这两者分别保存在部门表和成员表里面,在删除某个部门的时候,假设我们默认删除对应的成员.但是在执行的时候可能会出现这种情况,我们先删除部门,再删除成员,但是部门删除成功了,删除成员的时候出异常了.这时候我们希望如果成员删除失败了,之前删除的部门也取消删除.这种场景就可以使用@Transactional事物回滚. 二.checked异常和unc

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

1.在service方法里面如果对异常进行了捕获的话,该事务是不会进行回滚的        默认spring事务只在发生未被捕获的 runtimeexcetpion时才回滚.          spring aop  异常捕获原理:被拦截的方法需显式抛出异常,并不能经任何处理,这样aop代理才能捕获到方法的异常,才能进行回滚,默认情况下aop只捕获runtimeexception的异常,但可以通过配置来捕获特定的异常并回滚,换句话说在service的方法中不使用try catch 或者在catc

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

原文出处: 小宝鸽 一.使用场景举例 在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用.下面举个栗子:比如一个部门里面有很多成员,这两者分别保存在部门表和成员表里面,在删除某个部门的时候,假设我们默认删除对应的成员.但是在执行的时候可能会出现这种情况,我们先删除部门,再删除成员,但是部门删除成功了,删除成员的时候出异常了.这时候我们希望如果成员删除失败了,之前删除的部门也取消删除.这种场景就可以使用@Transactional事物回滚. 二.che

rails中两种回滚-reversible和revert区别

通常迁移内容写在change方法中 ,但是有些迁移内容不能自动通过执行rake:rollback回滚, 所以在迁移文件里要使用 reversible 方法,告诉rails如何回滚例如下面 class ExampleMigration < ActiveRecord::Migration def change create_table :distributors do |t| t.string :zipcode end reversible do |dir| dir.up do # add a CH

Html页面加回滚

<div class="top-box"> <img src="~/Content/img/youlink.jpg" width="54" height="60" class="youlink-img" /><br /> <img src="~/Content/img/top.gif" class="top-img" />

12、c#中事务及回滚

1 public void UpdateContactTableByDataSet(DataSet ds, string strTblName) 2 { 3 try 4 { 5 SqlDataAdapter myAdapter = new SqlDataAdapter(); 6 SqlConnection conn = new SqlConnection("connection string"); 7 SqlCommand myCommand = new SqlCommand(&quo

关于iOS中页面启动加载的相关问题汇总

博主昨天看了些李明杰老师的关于UIWindow以及加载View的视频,觉得有必要一篇技术博客来记录一下,一来是为了给自己学到的东西做一下总结,二来也希望能够对一些对这方面知识不是很熟悉的人,补充一下知识点,废话不多说,进入正题. 一.首先是关于APP在运行后,执行的顺序 就是先执行main.m,然后执行AppDelegate,然后再在AppDelegate中初始化视图的容器UIWindow,最后再创建一个控制器的View在UIWindow中显示出来. 二.接下来说一下关于UIWindow载入Vi