美文网首页程序员
移动端入门之两个手指自由缩放

移动端入门之两个手指自由缩放

作者: 柠檬树QAQ | 来源:发表于2017-02-09 23:52 被阅读0次
    缩放.png
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
        <meta name="apple-mobile-web-app-capable" content="yes">
        <meta name="apple-mobile-web-app-status-bar-style" content="black">
        <title>缩放</title>
        <style>
            #box{width:100px;
                height:100px;
            background: red;}
            html,body{width:100%;height:100%; overflow:hidden;}
        </style>
        <script>
    
                document.addEventListener('DOMContentLoaded',function() {
                    var c=1;//先定义一个初始值
                    var oBox=document.getElementById('box');
                    document.addEventListener('touchstart',function (ev) {//手指点下
                        var oldC=c;//把初始值放到oldC里面
                       function getC(ev) {
                           var x1=ev.targetTouches[0].pageX;
                           var y1=ev.targetTouches[0].pageY;//两根手指缩放肯定需要两根手指,【0】第一根手指的Xy的坐标
    
                           var x2=ev.targetTouches[1].pageX;//第二根手指的坐标
                           var y2=ev.targetTouches[1].pageY;
    
                           var a=x1-x2;//第一根手指的pageX-第二根手指的pageX,这样正好是一个之间三角形 得到两个直角边;
                           var b=y1-y2;//同上
                           return Math.sqrt(a*a+b*b)//已知两个直角边开平方得出 斜角边
                       }
                       if(ev.targetTouches.length==2){//判断是否是两根手指 是的话  把两根手指点上去的时候的 斜脚边的初始值 放到 downC里面
                           var downC=getC(ev);
                       }
                       document.addEventListener('touchmove',function (ev) { //手指移动的时候
                           if(ev.tatgetTouches.length==2){//判断移动的时候是否是两根手指
                               c=getC(ev)/downC+oldC;//这个时候的getC(ev)是move时候的,用移动后的斜脚边的值除没移动的值加上他的初始值,
                               oBox.style.webkitTransform='scale('+c+')';//通过scale----2D缩放转换
                           }
    
                       },false)
    
    
    
                    },false)
                },false)
    
        </script>
    
    </head>
    <body>
        <div id="box"></div>
    </body>
    
    </html>
    

    相关文章

      网友评论

        本文标题:移动端入门之两个手指自由缩放

        本文链接:https://www.haomeiwen.com/subject/xzgwittx.html