H5页面--Android滑动屏幕图片误触

处理移动端上点击有300ms延迟的方法,我们通常会用fastclick.js来解决,但是调用fastclick.js可能会导致另一个问题,就是在安卓端的时候,H5页面未加载完时,滑动页面如果误触图片,会触发图片的点击事件,这在实际应用中是很不好的体验,在此,我自己在开发中遇到,给出如下的一套解决方案:

判断页面是否加载完毕,未加载完时不让触发点击事件,加载完毕才允许触发点击事件

document.readyState == 'complete'加载完毕 / document.readyState == 'loading'加载中

在这里,我们先定义一个变量,记录页面加载的状态;

var loadState = false;   //初始值默认为false

建立一个函数,实时监控页面当前的加载状态:


document.onreadystatechange = clickSomething;

function clickSomething() {

    if (document.readyState == "complete") { //当页面加载状态为完全结束时进入

        loadState = true;

    }

}

判断当前加载状态,加载完毕则允许触发点击事件:

// 全屏图片预览

$('img[data-mce-attachid]').on("click", function() {

    if (loadState) {

        var max = $(this).data("max");

        if (!max) {

            max = $(this).attr("src");

        }

        $("body").append("<div class='maxFigure' ontouchmove='return false'><img src=" + max + "><span class='close' onclick=$('.maxFigure').remove()></span></div>");

    }
        
});

这里有个坑需要注意,加载状态的if判断要写在click事件里面,如果包裹在外面,click事件可能会加载不出来。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值