vue手势、移动端手指放大缩小插件与js源码、生成图片 html2canvas
2022/3/10 1:17:02
本文主要是介绍vue手势、移动端手指放大缩小插件与js源码、生成图片 html2canvas,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
AlloyFinger,https://github.com/AlloyTeam/AlloyFinger
首先安装AlloyFinger:npm install alloyfinger
然后在Vue文件里面引用:import AlloyFinger from 'alloyfinger'
放大移动
<!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>
这篇关于vue手势、移动端手指放大缩小插件与js源码、生成图片 html2canvas的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-03-30[OIDC in Action] 2. 基于OIDC(OpenID Connect)的SSO(纯JS客户端)
- 2024-03-29terraform jsonencode
- 2024-03-13vuex-persist
- 2024-03-11icons for vue
- 2024-03-07breadcrumbs react js
- 2024-03-06react login page example
- 2024-03-06react router uselocation
- 2024-03-04postgres jsonb_set
- 2024-03-01react native uuid
- 2024-02-29vuejs sidebar