Android 4.x touchmove事件兼容问题

时隔已久,没有写技术博客了。对于过去的2016年,总的来说是迷茫、挣扎、痛苦的。2017年,开端貌似不错,可能正视了自己的挫折,也稍微摆正了自己的态度吧

进入主题:Android 4.x touchmove事件兼容问题。

在开发 hybridApp 中,Android开发同事说在4.x的lg手机上,有滑不动的情况,看了之后发现是touchmove事件的问题。在4.x中,touchmove滑动只会动一下,所以无法得到准确的滑动距离,而我的代码中是要获取到这段move的距离的。


解决方法

  • 一开始在touchstart中添加了e.preventDefault();阻止了默认行为之后,可以左右滑动了。
  • 但是存在一个问题,自带的滚动被禁掉了。
  • 最后的解决方法,针对5.0以下的做特殊处理

代码

在touchmove中:

if(_t.data.clientType == 'Android'){
    var ua = window.navigator.userAgent;
    if(parseInt(ua.split('Android ')[1].split(';')[0]) < 5){
        e.preventDefault();
    }
}

//计算距离代码
var touch = e.touches[0];
maintouch_x_end = touch.pageX;
maintouch = maintouch_x_end - maintouch_x;

maintouch_y_end = touch.pageY;
mainy = maintouch_y_end - maintouch_y;

// 计算滚动代码
if(_t.data.clientType == 'Android'){
    var ua = window.navigator.userAgent;
    if(parseInt(ua.split('Android ')[1].split(';')[0]) < 5){
        _t.dom.main.find('.mainwrap').scrollTop(startTop - mainy*1.2)
    }
}

最后

写的代码有点蠢,特别是判断版本那段

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值