移动端手指放大缩小插件与js源码


Posted in Javascript onMay 22, 2017

本文实例为大家分享了移动端手指放大缩小的具体代码,供大家参考,具体内容如下

<!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.targetTouches.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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 图片上一张下一张链接效果代码
Mar 12 Javascript
基于jquery的气泡提示效果
May 31 Javascript
新手常遇到的一些jquery问题整理
Aug 16 Javascript
页面按钮禁用与解除禁用的方法
Feb 19 Javascript
jQuery获取样式中颜色值的方法
Jan 29 Javascript
JavaScript使用slice函数获取数组部分元素的方法
Apr 06 Javascript
jquery实现两个图片渐变切换效果的方法
Jun 25 Javascript
js判断子窗体是否关闭的方法
Aug 11 Javascript
jquery实现表单获取短信验证码代码
Mar 13 Javascript
vue使用require.context实现动态注册路由
Dec 25 Vue.js
解决Vue+SpringBoot+Shiro跨域问题
Jun 09 Vue.js
关于JavaScript回调函数的深入理解
Jun 27 Javascript
jQuery滑动到底部加载下一页数据的实例代码
May 22 #jQuery
详解Angular路由 ng-route和ui-router的区别
May 22 #Javascript
Angular中$broadcast和$emit的使用方法详解
May 22 #Javascript
详解从angular-cli:1.0.0-beta.28.3升级到@angular/cli:1.0.0
May 22 #Javascript
详解AngularJS1.6版本中ui-router路由中/#!/的解决方法
May 22 #Javascript
JS实现上传图片实时预览功能
May 22 #Javascript
详解Angular 4.x NgIf 的用法
May 22 #Javascript
You might like
PHP中date与gmdate的区别及默认时区设置
2014/05/12 PHP
CI框架自动加载session出现报错的解决办法
2014/06/17 PHP
解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题
2020/08/24 PHP
Jquery之美中不足小结
2011/02/16 Javascript
jquery.ajax的url中传递中文乱码问题的解决方法
2014/02/07 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
2014/03/18 Javascript
探讨js字符串数组拼接的性能问题
2014/10/11 Javascript
jquery操作angularjs对象
2015/06/26 Javascript
AngularJS 工作原理详解
2016/08/18 Javascript
javascript的document中的动态添加标签实现方法
2016/10/24 Javascript
javascript 中Cookie读、写与删除操作
2017/03/29 Javascript
浅谈vue方法内的方法使用this的问题
2018/09/15 Javascript
微信小程序云开发之数据库操作
2019/05/18 Javascript
JS实现判断数组是否包含某个元素示例
2019/05/24 Javascript
Vue elementui字体图标显示问题解决方案
2020/08/18 Javascript
element中table高度自适应的实现
2020/10/21 Javascript
[02:16]DOTA2超级联赛专访Burning 逆袭需要抓住机会
2013/06/24 DOTA
[04:21]狐狸妈带你到现场 DOTA2 TI中国区预选赛线下赛路线指引
2014/05/22 DOTA
[54:53]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第二场
2014/05/23 DOTA
[01:18:36]LGD vs VP Supermajor 败者组决赛 BO3 第一场 6.10
2018/07/04 DOTA
[50:05]VGJ.S vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
python生成随机密码或随机字符串的方法
2015/07/03 Python
bpython 功能强大的Python shell
2016/02/16 Python
浅谈flask截获所有访问及before/after_request修饰器
2018/01/18 Python
Python 确定多项式拟合/回归的阶数实例
2018/12/29 Python
HTML5 本地存储和内容按需加载的思路和方法
2011/04/07 HTML / CSS
康帕斯酒店预订:Compass Hospitality(支持中文)
2018/08/23 全球购物
印度最好的在线药品订购网站:PharmEasy
2018/11/30 全球购物
TripAdvisor日本:全球领先的旅游网站
2019/02/14 全球购物
小学安全工作汇报材料
2014/08/19 职场文书
课外访万家心得体会
2014/09/03 职场文书
人大代表选举标语
2014/10/07 职场文书
签证扫盲贴,41个常见签证知识,需要的拿走
2019/08/09 职场文书
详解Laravel框架的依赖注入功能
2021/05/27 PHP
python中Matplotlib绘制直线的实例代码
2021/07/04 Python
Win11如何设置右键单击显示所有选项?Win11右键单击显示所有选项设置教程
2022/04/08 数码科技