• 移动端 图片放大缩小 (双手指) 单手指移动


    <style>
        .container{width: 100%;height: 200px;text-align: center;}
        .imgMax{width: 100%;}
        .containerBg{background-color: black;width: 100%;height: 100%;position: fixed;top: 0px;left: 0px;z-index: 111}
        .containerBg img{width: 100%;margin: auto;}
    </style>
    <div class="container"><img class="imgMax" src="/static/wap/images/220150.png" alt=""></div>
    <div class="containerBg" style="display: none;">
        <img class="containerBgImg" style="transform: translate(0px,0px) translateZ(0px)" src="/static/wap/images/220150.png" alt="">
        <span style="color: #FFFFFF;">11111111111111</span>
    </div>
    <script>
        var dis = [];
        var x ;
        var y ;
        var disMinOld = 1;
        var disMin =1 ;
        var transX;
        var transY;
        var posX=0;
        var posY=0;
        $(".imgMax").on('click',function () {
            $(".containerBg").show();
        });
        $(document).on('touchstart','.containerBgImg',function (e) {
            var evt = e.originalEvent;
    //        if(evt.touches.length == 2) {
                x = Number(evt.touches[0].clientX);
                y = Number(evt.touches[0].clientY);
    //        }
            var matrix = $(".containerBgImg").css('transform');
             transX =   parseFloat(matrix.split("(")[1].split(")")[0].split(", ")[4]);
             transY =   parseFloat(matrix.split("(")[1].split(")")[0].split(", ")[5]);
        });
        $(document).on('touchmove','.containerBgImg',function (e) {
            touchMoveImg(e)
        });
        $(".containerBgImg").on('touchend',function (e) {
            dis = [];
            disMinOld = disMin;
        });
        function touchMoveImg(e) {
            e.preventDefault();
            var evt = e.originalEvent;
            try {
                if(evt.touches.length == 2){
                    var x1 = Number(evt.touches[1].clientX);
                    var y1 = Number(evt.touches[1].clientY);
                    dis.push(Math.sqrt(Math.pow(x-x1,2) + Math.pow(y-y1,2)));
                    if(dis.length > 1){
                         disMin = dis[dis.length-1]/dis[0];
                        disMin = disMinOld*disMin;
                        $(".containerBgImg").css({
                            'webkitTransform':'scale('+disMin+') translate('+transX+'px,'+transY+'px)'
                        })
                    }
                }else if(evt.touches.length == 1){
                    var x1 = Number(evt.touches[0].clientX);
                    var y1 = Number(evt.touches[0].clientY);
                       posX = parseFloat(x1-x);
                       posY = parseFloat(y1-y);
                       posX = posX+transX;
                       posY = posY+transY;
                        $(".containerBgImg").css({
                            'transform':'translate('+posX+'px,'+posY+'px) scale('+disMinOld+')',
                            '-webkit-transform':'translate('+posX+'px,'+posY+'px) scale('+disMinOld+')',
                            '-ms-transform':'translate('+posX+'px,'+posY+'px) scale('+disMinOld+')'
                        })
    
                }
            }catch (e) {
                alert('touchMoveFunc:' + e.message);
            }
    
        }
    </script>
  • 相关阅读:
    js-----面向对象=====>工厂模式/构造函数/原型模式
    MarkDown语法
    Vue 基础篇
    CSS 预处理语言之 less 篇
    Git常用命令
    与 JSON 相关的一些操作 (项目中用到一部分,后续逐渐完善)
    [转] -- html5手机网站自适应需要加的meta标签
    [转] -- 最全前端资源汇集
    json和jsonp的区别,ajax和jsonp的区别
    对象
  • 原文地址:https://www.cnblogs.com/lst619247/p/9324244.html
Copyright © 2020-2023  润新知