移动端手指放大缩小插件与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 相关文章推荐
利用ASP发送和接收XML数据的处理方法与代码
Nov 13 Javascript
Google Map Api和GOOGLE Search Api整合实现代码
Jul 18 Javascript
jQuery实现的多选框多级联动插件
May 02 Javascript
js实现图片漂浮效果的方法
Mar 02 Javascript
基于JavaScript实现鼠标悬浮弹出跟随鼠标移动的带箭头的信息层
Jan 18 Javascript
详解Node.js模块间共享数据库连接的方法
May 24 Javascript
关于javascript原型的修改与重写(覆盖)差别详解
Aug 31 Javascript
Node.js实现文件上传的示例
Jun 28 Javascript
vue 实现全选全不选的示例代码
Mar 29 Javascript
vue中post请求以a=a&amp;b=b 的格式写遇到的问题
Apr 27 Javascript
解决layui数据表格table的横向滚动条显示问题
Sep 04 Javascript
Vue $emit()不能触发父组件方法的原因及解决
Jul 28 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
德生9700DX电路分析
2021/03/02 无线电
PHP 显示客户端IP与服务器IP的代码
2010/10/12 PHP
PHP书写格式详解(必看)
2016/05/23 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
2016/06/20 PHP
浅谈PHP各环境下的伪静态配置
2019/03/13 PHP
php libevent 功能与使用方法详解
2020/03/04 PHP
推荐:极酷右键菜单
2006/11/29 Javascript
用JavaScript实现仿Windows关机效果
2007/03/10 Javascript
jQuery Selector选择器小结
2010/05/06 Javascript
前台js对象在后台转化java对象的问题探讨
2013/12/20 Javascript
jQuery实现切换字体大小的方法
2015/03/10 Javascript
分享一些常用的jQuery动画事件和动画函数
2015/11/27 Javascript
JS插件overlib用法实例详解
2015/12/26 Javascript
Angular2内置指令NgFor和NgIf详解
2016/08/03 Javascript
Ajax 加载数据 练习代码
2017/01/05 Javascript
JS简单验证上传文件类型的方法
2017/04/17 Javascript
JS实现点击循环切换显示内容的方法
2017/10/19 Javascript
jQuery实现监听下拉框选中内容发生改变操作示例
2018/07/13 jQuery
解决ie11 SCRIPT5011:不能执行已释放Script的代码问题
2019/05/05 Javascript
JavaScript eval()函数定义及使用方法详解
2020/07/07 Javascript
在Python中编写数据库模块的教程
2015/04/29 Python
1分钟快速生成用于网页内容提取的xslt
2018/02/23 Python
Python实现查看系统启动项功能示例
2018/05/10 Python
在django中图片上传的格式校验及大小方法
2019/07/28 Python
Python参数传递对象的引用原理解析
2020/05/22 Python
如何使用python自带IDLE的几种方法
2020/10/10 Python
Pytorch1.5.1版本安装的方法步骤
2020/12/31 Python
详解纯CSS3制作的20种loading动效
2017/07/05 HTML / CSS
Lenox官网:精美的瓷器&独特的礼品
2017/02/12 全球购物
英国网上购买肉类网站:Great British Meat
2018/10/17 全球购物
应届本科生推荐信范文
2013/12/25 职场文书
《燕子》教学反思
2014/02/18 职场文书
关于运动会的口号
2014/06/07 职场文书
python模板入门教程之flask Jinja
2022/04/11 Python
Java由浅入深通关抽象类与接口(上篇)
2022/04/26 Java/Android
vue实现input输入模糊查询的三种方式
2022/08/14 Vue.js