移动端手指放大缩小插件与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 相关文章推荐
jQuery 定时局部刷新(setInterval)
Nov 19 Javascript
js对象继承之原型链继承实例
Jan 10 Javascript
jquery制作LED 时钟特效
Feb 01 Javascript
jQuery实现带动画效果的二级下拉导航方法
Mar 11 Javascript
浅谈javascript语法和定时函数
May 03 Javascript
使用AngularJS对路由进行安全性处理的方法
Jun 18 Javascript
JQuery导航菜单选择特效
Apr 11 Javascript
DOM操作和jQuery实现选项移动操作的简单实例
Jun 07 Javascript
JQuery PHP图片在线裁剪实例
Jul 27 Javascript
vue遍历生成的输入框 绑定及修改值示例
Oct 30 Javascript
微信小程序开发中var that =this的用法详解
Jan 18 Javascript
如何手动实现一个 JavaScript 模块执行器
Oct 16 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
input file获得文件根目录简单实现
2013/04/26 PHP
php使用get_class_methods()函数获取分类的方法
2016/07/20 PHP
获取中文字符串的实际长度代码
2014/06/05 Javascript
理解javascript中的with关键字
2016/02/15 Javascript
百度多文件异步上传控件webuploader基本用法解析
2016/11/07 Javascript
创建一般js对象的几种方式
2017/01/19 Javascript
AngularJS学习笔记之表单验证功能实例详解
2017/07/06 Javascript
VUE element-ui 写个复用Table组件的示例代码
2017/11/18 Javascript
关于vue单文件中引用路径的处理方法
2018/01/08 Javascript
AngularJS监听ng-repeat渲染完成的方法
2018/03/20 Javascript
基于JavaScript实现幸运抽奖页面
2020/07/05 Javascript
使用webpack构建应用的方法步骤
2019/03/04 Javascript
微信小程序开发常见问题及解决方案
2019/07/11 Javascript
layui使用数据表格实现购物车功能
2019/07/26 Javascript
Vue环境搭建+VSCode+Win10的详细教程
2020/08/19 Javascript
vue打包静态资源后显示空白及static文件路径报错的解决
2020/09/02 Javascript
五句话帮你轻松搞定js原型链
2020/12/09 Javascript
如何在JavaScript中等分数组的实现
2020/12/13 Javascript
常用python数据类型转换函数总结
2014/03/11 Python
Python使用xlrd模块操作Excel数据导入的方法
2015/05/26 Python
用tensorflow实现弹性网络回归算法
2018/01/09 Python
Django 跨域请求处理的示例代码
2018/05/02 Python
Python实现的json文件读取及中文乱码显示问题解决方法
2018/08/06 Python
对python中UDP,socket的使用详解
2019/08/22 Python
Python selenium键盘鼠标事件实现过程详解
2020/07/28 Python
使用CSS3制作一个简单的进度条(demo)
2017/05/23 HTML / CSS
HTML5本地存储之Web Storage详解
2016/07/04 HTML / CSS
俄罗斯便宜的在线服装商店:GroupPrice
2020/04/10 全球购物
学生的自我鉴定范文
2013/10/24 职场文书
培训讲师邀请函
2014/01/10 职场文书
网上快餐厅创业计划书
2014/02/01 职场文书
党员组织生活会发言材料
2014/10/17 职场文书
高中数学课堂教学反思
2016/02/18 职场文书
基于Python实现射击小游戏的制作
2022/04/06 Python
Python绘制散乱的点构成的图的方法
2022/04/21 Python
MYSQL中文乱码问题的解决方案
2022/06/14 MySQL