移动端手指放大缩小插件与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 相关文章推荐
防止网站内容被拷贝的一些方法与优缺点好处与坏处分析
Nov 30 Javascript
js生成随机数之random函数随机示例
Dec 20 Javascript
js的延迟执行问题分析
Jun 23 Javascript
js实现简单的联动菜单效果
Aug 19 Javascript
js实现div拖动动画运行轨迹效果代码分享
Aug 27 Javascript
javascript入门教程基础篇
Nov 16 Javascript
Js查找字符串中出现次数最多的字符及个数实例解析
Sep 05 Javascript
Easyui Tree获取当前选择节点的所有顶级父节点
Feb 14 Javascript
基于angular实现三级联动的生日插件
May 12 Javascript
Vue和Bootstrap的整合思路详解
Jun 30 Javascript
js正则取值的结果数组调试方法
Oct 10 Javascript
Node.js中的不安全跳转如何防御详解
Oct 21 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
Search Engine Friendly的URL设计
2006/10/09 PHP
js获取触发事件元素在整个网页中的绝对坐标(示例代码)
2013/12/13 Javascript
JS获取DropDownList的value值与text值的示例代码
2014/01/07 Javascript
7个让JavaScript变得更好的注意事项
2015/01/28 Javascript
js制作带有遮罩弹出层实现登录注册表单特效代码分享
2015/09/05 Javascript
原生js实现数字字母混合验证码的简单实例
2015/12/10 Javascript
Bootstrap里的文件分别代表什么意思及其引用方法
2017/05/01 Javascript
Js实现京东无延迟菜单效果实例(demo)
2017/06/02 Javascript
理解 javascript 中的函数表达式与函数声明
2017/07/07 Javascript
js中变量的连续赋值(实例讲解)
2017/07/08 Javascript
JavaScript中变量提升与函数提升经典实例分析
2018/07/26 Javascript
webpack4.x下babel的安装、配置及使用详解
2019/03/07 Javascript
详解微信小程序实现跑马灯效果(附完整代码)
2019/04/29 Javascript
小程序组件之自定义顶部导航实例
2019/06/12 Javascript
详解vue-property-decorator使用手册
2019/07/29 Javascript
layui实现把数据表格时间戳转换为时间格式的例子
2019/09/12 Javascript
Vue的全局过滤器和私有过滤器的实现
2020/04/20 Javascript
vue.js实现照片放大功能
2020/06/23 Javascript
[01:59]翻天覆地,因你而变,7.20版本地图更新速览
2018/11/24 DOTA
python获取mp3文件信息的方法
2015/06/15 Python
通过Python使用saltstack生成服务器资产清单
2016/03/01 Python
带你了解python装饰器
2017/06/15 Python
python+django加载静态网页模板解析
2017/12/12 Python
python实现树的深度优先遍历与广度优先遍历详解
2019/10/26 Python
使用Pyhton集合set()实现成果查漏的例子
2019/11/24 Python
tensorflow中tf.reduce_mean函数的使用
2020/04/19 Python
如何基于matlab相机标定导出xml文件
2020/11/02 Python
澳大利亚在线购买儿童玩具:Toy Universe
2017/12/28 全球购物
美国亚马逊旗下男装网站:East Dane(支持中文)
2019/09/25 全球购物
Prototype如何更新局部页面
2013/03/03 面试题
《回乡偶书》教学反思
2014/04/12 职场文书
初中体育课教学反思
2016/02/16 职场文书
公文格式,规则明细(新手收藏)
2019/07/23 职场文书
Django REST framework 限流功能的使用
2021/06/24 Python
Ubuntu Server 安装Tomcat并配置systemctl
2022/04/28 Servers
关于MySQL中explain工具的使用
2023/05/08 MySQL