jquery – iScroll – 保留原生垂直滚动 – 适用于iOS,而不是Android

前端之家收集整理的这篇文章主要介绍了jquery – iScroll – 保留原生垂直滚动 – 适用于iOS,而不是Android前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用iScroll.js滚动浏览移动页面上的项目轮播.我发现以下修复程序侦听垂直移动并停止iScroll脚本控制,让原生垂直滚动发生:
onBeforeScrollStart: function(e) {
        try {
            point = e.touches[0];
            pointStartX = point.pageX;
            pointStartY = point.pageY;
        } catch(e) {}
        null;
    },onBeforeScrollMove: function(e) {
        try {
            deltaX = Math.abs(point.pageX - pointStartX);
            deltaY = Math.abs(point.pageY - pointStartY);
            if (deltaX >= deltaY) {
                e.preventDefault();
            } else {
                null;
            }
        } catch(e) {}
    }

我正在使用try {} catch {},因为它在浏览器中进行测试时遇到了一些问题(抱怨点未被定义).

我遇到的问题是它在iOS上运行良好,在多个i设备上进行了测试,但在Android上并不是那么好.如果用户尝试垂直滚动页面,首先将手指放在旋转木马上,页面不会滚动,因为iScroll仍然可以控制.

知道如何让它在Android上运行,或任何指向它可能出错的地方吗?

编辑:

一些调试,我发现可能为什么这不起作用.当用户触摸iOS上的屏幕时,坐标正在更新,但在Android上,只有第一组坐标被捕获.知道为什么会这样吗?

解决方法

你在onBeforeScrollMove的范围内似乎没有“点”.
此外,一些Android设备可能会通过多点触控调用点击事件(我无法确认这一点,但由于平台碎片而只能进行理论化)

我有一个很好的脚本,我将很快发布,点击事件并模拟一个独特的多点触控事件,使用“鼠标”作为触摸的标识符属性,这可能是一些帮助w /调试.我会在明天晚上尝试让这个项目上线.

它应该添加一些更新和项目,但这里有一个链接

https://github.com/skhameneh

编辑:更正,你甚至更新“点”?它似乎是在这段代码之外的范围内并在内部进行了更改.如果您发布了其余代码,可能会有所帮助.

原文链接:https://www.f2er.com/jquery/177212.html

猜你在找的jQuery相关文章