zoukankan      html  css  js  c++  java
  • 解决安卓网页在微信浏览器中点击图片会自动放大

    使用的是微信Android客户端,使用img标签的src属性将图片设置好了以后,在微信中调试,点击图片竟然放大,自己 
    没写放大图片的方法,也没有调用wx.previewImage()方法,最后查找,原来是微信Android客户端已经在底层支持了img标签自动放大的功能,说是bug还是改进?因为传统的浏览器是不带图片放大效果的,需要自己写方法,好了,明白了问题所在,解决就好了: 
    传统方式: 

    这个方式可能会把所有的默认的属性都屏蔽了,典型的就是a标签不能跳转 
    $(document).on(‘click’, ‘img’, e => { 
    e.preventDefault(); 
    }) 

    js阻止事件

    <img src="a.png" onclick="return false" />

    css方式: 
    img{ 
    pointer-events: none; 

    这个会让img标签的点击事件失效,如果想要点击图片就要给上面再写一层 
    Vue方式: 
    v-on:click.prevent或者@click.prevent 
    既能保证img标签的click,也能保证在微信中不自动放大,完美解决

    另外一种方法

    // 递归搜索当前元素所有父级,看是否包含有a标签且有href值
    const searchIsHavaTagA = function (currentEle) {
        // 如果一直往上层找,到body还没找到就说明没有了
        if (currentEle.nodeName === 'BODY') {
            return false;
        }
        let parent = currentEle.parentElement;
        if (parent.nodeName === 'A' && parent.getAttribute('href')) {
            return true;
        } else {
            return searchIsHavaTagA(parent);
        }
    }
    $(document).on('click', 'img', function (e) {
        try {
            // 父级里有a标签且href不为空的,不处理
            if (!searchIsHavaTagA(e.target)) {
                e.preventDefault();
            }
        } catch (error) {
            console.log('阻止图片默认事件失败');
        }
                            
    })
  • 相关阅读:
    java内置数据类型
    docker安装及配置
    redis持久化
    golang linux安装
    TCP/IP协议
    php高并发,大流量
    C语言阐述进程和线程的区别
    python 消息队列-rabbitMQ 和 redis介绍使用
    python 新手题目-文件读写-关键字判断
    python IO模式(多路复用和异步IO深入理解)
  • 原文地址:https://www.cnblogs.com/-mrl/p/9213329.html
Copyright © 2011-2022 走看看