最新公告
  • 欢迎访问代码工坊,购买产品可享受在线工单服务!
  • 禁止移动端浏览器点击图片弹出预览放大等动作的方法

      最近在写移动端项目开的时候,在一个div中引用img标签。运行项目后,点击该图片的时候,会发现图片呈现预览模式,但是我们没有给图片添加任何的click事件,效果如下:

      点击前:

    禁止移动端浏览器点击图片弹出预览放大等动作的方法

      点击后:

    禁止移动端浏览器点击图片弹出预览放大等动作的方法

      这是因为移动端浏览器的默认行为,那么该如何解决呢?

    解决办法

    1、在img元素上添加 onclick="return false"
    <img src="a.png" onclick="return false" />
    2、.图片用背景图的方式插入
    background:url(a.png) norepeat center;
    3、.使用js事件阻止默认行为的方法,这里需要注意哦!
    var img=document.getElementsByTagName("img");
    for(var i=0;i<img.length;i++){
        img[i].addEventListener('click',function(e){
            e.preventDefault();
        });
    }
    

          关于这里的click事件,其实也可以是touchend事件,但是不可以是touchstart和touchmove事件!

          因为使用touchstart和touchmove事件的时候,假如页面顶部有个超级大的banner图,那么当横屏显示或者类似于ipad等屏幕宽度大于高度的情况下,整个banner图都占满了屏幕,这个时候页面没法滑动。因为你用touchstart和touchmove禁止掉了图片的默认行为,所以手指怎么滑动,页面都没反应的。刚好这个滑动的行为触发了touchstart和touchmove。

    发表评论