• 解决安卓网页在微信浏览器中点击图片会自动放大


    使用的是微信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('阻止图片默认事件失败');
        }
                            
    })
  • 相关阅读:
    吴恩达 机器学习笔记
    三个水杯
    架构之美读书笔记05
    架构之美读书笔记04
    架构之美读书笔记03
    架构之美读书笔记02
    架构之美读书笔记01
    《需求工程——软件建模与分析》阅读笔记03
    《需求工程——软件建模与分析》阅读笔记02
    16下学期进度条2
  • 原文地址:https://www.cnblogs.com/-mrl/p/9213329.html
Copyright © 2020-2023  润新知