搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
我家小花儿
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
【vscode】vscode实现c代码跳转,函数关联关系查看_c 环境vscode跳转代码安装什么插件
2
室内定位市场深度剖析,UWB定位技术或将成为主流!_uwb芯片 产业痛点
3
AndroidStudio百度地图开发之显示地图_android studio的runing devices没有显示百度地图
4
CCS编译器版本问题 This project was created using a version of compiler that is not currently installed
5
咨询的方法——埃森哲公司怎么做
6
postgresql数据库表膨胀之pg_repack安装及使用
7
自然语言处理(NLP)简介
8
【微信小程序】收藏功能的实现(条件渲染、交互反馈)_微信小程序收藏功能实现
9
elasticsearch 配置用户名和密码_elasticsearch设置用户名密码
10
【控制】《多无人机协同控制技术》周伟老师-目录_多无人机协同控制技术网盘
当前位置:
article
> 正文
touch事件实现双指缩放_t触摸两指缩放
作者:我家小花儿 | 2024-03-09 09:59:11
赞
踩
t触摸两指缩放
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>gesture</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
#app {
position: absolute;
bottom: 0px;
left: 0px;
border: 2px solid red;
width: 700px;
height: 500px;
overflow: hidden;
}
.box {
touch-action: none;
position: absolute;
/**/
background: green;
border: 1px solid black;
width: 300px;
height: 200px;
}
</style>
</head>
<body>
<div id="app">
<!-- <embed src="http://10.0.0.5:90/File/Patient/0000084672_1/PDF/TiWenDan.pdf" type="application/pdf" internalinstanceid="4" class="box"> -->
<!-- -->
<div class="box"></div>
<!-- <img src="1.png" alt="" class="box"> -->
</div>
<script>
var pageX, pageY, initX, initY, isTouch = false;
var start = [];
document.addEventListener("touchstart", function (e) {
//手指按下时的手指所在的X,Y坐标
pageX = e.targetTouches[0].pageX;
pageY = e.targetTouches[0].pageY;
//初始位置的X,Y 坐标
initX = e.target.offsetLeft;
initY = e.target.offsetTop;
//记录初始 一组数据 作为缩放使用
if (e.touches.length >= 2) { //判断是否有两个点在屏幕上
start = e.touches; //得到第一组两个点
};
//表示手指已按下
isTouch = true;
}, false);
//监听 touchmove 事件 手指 移动时 做的事情
document.addEventListener("touchmove", function (e) {
e.preventDefault();
// 一根 手指 执行 目标元素移动 操作
if (e.touches.length == 1 && isTouch) {
//移动目标的 X Y 坐标
var touchMoveX = e.targetTouches[0].pageX,
touchMoveY = e.targetTouches[0].pageY;
//设置当前点击元素的 top left 定位值
e.target.style.left = parseInt(touchMoveX) - parseInt(pageX) + parseInt(initX) + "px";
e.target.style.top = parseInt(touchMoveY) - parseInt(pageY) + parseInt(initY) + "px";
};
// 2 根 手指执行 目标元素放大操作
if (e.touches.length >= 2 && isTouch && e.scale < 2.5) {
//得到第二组两个点
var now = e.touches;
//得到缩放比例, getDistance 是勾股定理的一个方法
var scale = (getDistance(now[0], now[1]) / getDistance(start[0], start[1]));
// 对缩放 比例 取整
e.scale = scale.toFixed(2);
// 执行目标元素的缩放操作
e.target.style.transform = "scale(" + scale + ")";
};
}, false);
//监听 手指离开屏幕时
document.addEventListener("touchend", function (e) {
//将 isTouch 修改为false 表示 手指已经离开屏幕
if (isTouch) {
isTouch = false;
}
}, false);
//缩放 勾股定理方法
function getDistance(p1, p2) {
var x = p2.pageX - p1.pageX,
y = p2.pageY - p1.pageY;
return Math.sqrt((x * x) + (y * y));
};
</script>
</body>
</html>
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/我家小花儿/article/detail/214661?site
推荐阅读
article
kubernetes
-
dashboard
实现
http
访问
以及免
token
登录
_如何
http
...
kubernetes
-
dashboard
实现
http
访问
以及免
token
登录
_如何
http
访问
dashboar...
赞
踩
article
【
Linux
】
nginx
基础篇
--
介绍及
yum
安装
nginx
_
yum
nginx
...
可以自由选择所需的应用,生成
nginx
配置作为参考。根据你的业务需求,自动生成复杂的
nginx
配置文件,提供你作为参考,...
赞
踩
article
vue3
组件
的全局注册...
全局注册1. 新建一个vue文件,即
组件
,在
组件
中,//在sideBox.vue中,
[详细] -->
赞
踩
article
【学习心得笔记】
Python100
天-第一部分
Day01
-
Day15
_
python
学习100天 cs...
本文是个人对于项目的学习的一些心得和笔记,简单记录,如有不妥之处,欢迎批评指正。_
python
学习100天
csdn
py...
赞
踩
article
C语言
的
for
循环
中
i
++
和
++
i
的
关系_
c
语言
for
循环
中
i
++
和
++
i
...
首先需要明确
i
++
和
++
i
的
定义
++
是自增运算符,其作用是将作用对象
的
值增加1
++
放在作用对象
的
前面
的
话,例如
++
i
,作...
赞
踩
article
UG
\NX
二次开发
获取
工作部件的完整
名称
、文件
名称
、文件夹路径 UF_
ASSEM
_ask_comp...
UG
\NX
二次开发
获取
工作部件的完整
名称
、文件
名称
、文件夹路径 UF_
ASSEM
_ask_
component
_
data
...
赞
踩
article
新能源
风电
数据
集_
风电
公开
数据
集...
6+细分场景
风电
数据
集_
风电
公开
数据
集
风电
公开
数据
集 需要的同学私信联系,推荐关注上面图片右下...
赞
踩
article
卷积
神经网络
手写
数字
识别
(包含
Pytorch
实现代码)_
卷积
神经网络
手写
数字
识别
...
运用
卷积
神经网络
CNN采用监督学习的方法对0-9的
手写
数字
进行训练,把训练好的模型保存下来,用于
识别
0~9的
手写
数字
,调...
赞
踩
article
二、
Rocketmq
-
dashboard
的
web
管理
页面
部署_
rocketmq
管理
页面
地址...
提示:
rocketmq
-
dashboard
前身是rocket-console。_
rocketmq
管理
页面
地址rocket...
赞
踩
article
Unity3D
游戏
引擎最详尽
基础教程
...
第一节 加入重力我们先打开Unity3d,新建一个场景(Scene),新建的时候应该会有对话框要求你加入哪些Asset ...
赞
踩
article
Spring
Data
Redis
的配置、连接及常用方法的使用_
org
/springframewor...
Spring
Data
Redis
的概述
Spring
Data
Redis
是
Spring
大家族的一部分 提供了在Spri...
赞
踩
article
C语言
i
++
和
++
i
,
逻辑
运算符
和关系
运算符
_
i
=
21
++
...
scanf的使用
C语言
初学者经常会因为
C语言
本身极其严谨的格式而出错,例如句末结束时的分号。scanf的使用都是形如sc...
赞
踩
article
国内一些比较大型的IT
软件
外
包
公司
名单_
深圳
乐巢时代科技有限
公司
是
外
包
吗...
这种形式经常需要开发团队各个地方各种
公司
到处跑,等项目完成后将开发成果交付给项目的开发团队,便可回到所在的
公司
继续开展项...
赞
踩
article
MyBatis
实现
动态
SQL
_
mybatis
java
代码中
动态
执行
sql
示例...
MyBatis
中的
动态
SQL
就是
SQL
语句可以根据不同的情况情况来拼接不同的
sql
。本文会介绍 xml 和 注解 ...
赞
踩
article
UOS
内核
替换
kylin
内核
_
uos
更换
内核
...
UOS
内核
替换
kylin
内核
_
uos
更换
内核
uos
更换
内核
一、替换
UOS
内核
如果可以获取UO...
赞
踩
article
spring
boot
+
vue
前后
端
项目
的分离(我的第一个前后
端
分离
项目
)_
spring
boot
vu...
1、前
端
vue
的搭建建立
项目
的过程略需要注意的几点1、在建立
项目
的时候、可以选择路由选项。后续就不需要再次安装路由。2、...
赞
踩
article
热评
云
厂商:
有孚
网络
2.5
亿元,面向IPO寻求新突破_
有孚
网络
上市
最新进展
...
全球
云
观察《
云
白皮书(2020-2021)》热评
云
厂商60家之五十三在2020年,对于
有孚
网络
最大的事件,就是2020年...
赞
踩
article
基于
Docker
搭建
Maven
私服
仓库
(
Linux
)详细教程...
查看Nexus3镜像是否下载成功。创建Nexus3的挂载文件夹。
基于
Docker
搭建
Maven
私服
仓库
(
Linux
)详细...
赞
踩
article
Nginx
虚拟主机
配置
(基于
端口
,域名,
ip
三方式)_
nginx
配置
ip
端口
访问...
注意:1.修改完
配置
文件必须重启2.第一个
端口
为80,第二个
端口
为81,并且网站发布目录不同.3. 80
端口
为:/usr...
赞
踩
article
java
中
异常
详解以及运行时
异常
runtime
exception
_
mariadb
-
java
-cli...
1在数组应用中因为数组在
java
中属于引用数据类型所以,必须在使用前初始化,否则编译时不会出错,运行时会爆出
异常
,Nul...
赞
踩
相关标签
kubernetes
linux
nginx
运维
服务器
部署
vue.js
javascript
elementui
python
for循环
i++
++i
java
开发语言
UG二次开发
NX二次开发
c++
机器学习
数据挖掘
深度学习
目标检测
视觉检测
回归
能源