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

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

作者: 柠檬树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>

相关文章

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

  • 移动端------移动事件对

    在移动端,用户每时每刻都在触发移动事件,比如触摸的事件,点击,长按,左右滑动的事件,手指缩放,等等。都是移动事件的...

  • 禁用浏览器的缩放功能(js)

    一、移动端禁止缩放移动端在禁止缩放上比较简单,添加meta标签即可 二、PC(web)端禁止浏览器缩放S(情景)当...

  • 移动端入门之手指旋转

    实现思路:我们都知道风车的旋转 那就借鉴一下 也就是说 首先要有一个中心点 让物体围绕着中心点去旋转这是最基本的,...

  • 13图表缩放

    Highcharts 支持两种方式缩放,缩放(zoom)和平移(panning),完全支持移动端手势。涉及图表缩放...

  • js实现移动端图片浏览及缩放

    需求: 1.图片随着手指滚动 2.双指缩放 3.自动播放 实现:移动端中js有touch事件,touchstart...

  • 移动端使用vue-preview-photo动态加载图片实现图片

    使用场景:移动端需要实现附件预览功能,图片文件可以手指缩放。由于附件比较多,打开页面比较卡,为了提高用户体验,所以...

  • 移动端和pc端的拖拽事件

    pc端拖拽事件 移动端的拖拽事件 移动端的拖拽事件的思路是当手指点下记录手指的坐标和box的位置。当手指移动的时候...

  • 笔记 || 移动端事件(touch)

    移动端三个事件: touchstart——手指按下; touchmove——手指移动; touchend——手指松...

  • meta设置

    移动端页面设置视口宽度等于设备宽度,并禁止缩放。 移动端页面设置视口宽度等于定宽(如640px),并禁止缩放,常用...

网友评论

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

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