触屏拉动页面
来源:互联网 发布:java编写一个日历程序 编辑:程序博客网 时间:2024/05/16 11:12
touchstart:触摸开始的时候触发
touchmove:手指在屏幕上滑动的时候触发
touchend:触摸结束的时候触发
而每个触摸事件都包括了三个触摸列表,每个列表里包含了对应的一系列触摸点(用来实现多点触控):
touches:当前位于屏幕上的所有手指的列表。
targetTouches:位于当前DOM元素上手指的列表。
changedTouches:涉及当前事件手指的列表。
每个触摸点由包含了如下触摸信息(常用):
identifier:一个数值,唯一标识触摸会话(touch
target:DOM元素,是动作所针对的目标。
pageX/pageX/clientX/clientY/screenX/screenY:一个数值,动作在屏幕上发生的位置
添加事件
document.addEventListener('touchstart', touchstart, false);//手指刚接触
document.addEventListener('touchmove', touchMoveFunc, false);//手指滑动
document.addEventListener('touchend', touchEndFunc, false);//手指离开
╮(╯▽╰)╭
<!DOCTYPE html>
<html>
<script type="text/javascript" src="js/jquery-1.7.2.min.js" ></script>
<script type="text/javascript" >
var startY = 0;//初次触屏 XY轴
var startX = 0;
var endY = 0; //结束时
var endX = 0;
var startDate = "";//点击屏幕时间 开始和结束
var endDate = "";
var ms = 0; //使用秒数
var startObj = ""; //操作的对象 开始 变化 结束
var moveObj = "";
var endObj = "";
var sele ="";
var jsob = new Array();
function touchstart(e){
startObj = mouth(e);
startDate = new Date().getTime();
var shou = e.touches[0];
startY = shou.pageY;
startX = shou.pageX;
print();
}
function touchMoveFunc(e){
//alert(objMove);
moveObj = mouth(e);
var shou = e.touches[0];
endY = shou.pageY;
endX = shou.pageX;
print();
moveIng();
}
function touchEndFunc(e){
endObj = mouth(e);
endDate = new Date().getTime();
ms = (endDate-startDate)/1000;
var goType = "";
if(endY==0&&endX==0){
goType = "click";
}else{
goType = "滑动";
}
print();
endIng();
into();
}
function print(){
$("#shou").html("XZ:"+startX+ " YZ:"+startY+" DT:"+startDate);
$("#shou2").html("XZ:"+endX+ " YZ:"+endY);
}
//获取鼠标滑动时所在id
function mouth(e){
var ex,objX,th;
ex=e||window.event;
objX = ex.srcElement || ex.target || ex;
th=objX.id;
return th;
}
function moveIng(){
var obbb = "";
if(sele==""){
obbb = document.getElementById(moveObj);
}else{
obbb = document.getElementById(sele);
}
if(jsob[moveObj]==null){
jsob[moveObj] = 0;
}
obbb.style.webkitTransform = 'translate(' + 0+ 'px, ' + (jsob[moveObj]+ endY-startY) + 'px)';
// moveObj.top = startY - endY;
}
function endIng(){
var vsudu = (endY-startY)/ms;
var aerf = (vsudu-0)/ms;
//alert("aerf:"+aerf)
var s = aerf*0.5*ms*ms+vsudu*ms;//加速度运动距离
if(jsob[moveObj]==null){
jsob[moveObj] = 0;
}else{
jsob[moveObj] =jsob[moveObj]+ endY-startY;
}
var obbb = "";
if(sele==""){
obbb = document.getElementById(moveObj);
}else{
obbb = document.getElementById(sele);
}
obbb.style.webkitTransition="0.2s";
//alert(jsob[moveObj]+ (s-endY-startY));
obbb.style.webkitTransform = 'translate(' + 0+ 'px, ' + (jsob[moveObj]+ (s-endY+startY)) + 'px)';
// moveObj.top = startY - endY;
}
function into(){
startY = 0;//初次触屏 XY轴
startX = 0;
endY = 0; //结束时
endX = 0;
startDate = "";//点击屏幕时间 开始和结束
endDate = "";
ms = 0; //使用秒数
startObj = ""; //操作的对象 开始 变化 结束
moveObj = "";
endObj = "";
}
$(function(){
var obj = document.getElementById("kj");
obj.addEventListener('touchstart', touchstart, false);//手指刚接触
obj.addEventListener('touchmove', touchMoveFunc, false);//手指滑动
obj.addEventListener('touchend', touchEndFunc, false);//手指离开
});
</script>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div id="kj" style="border: solid red 1px;width: 80;height: 500px;margin: auto;" >
<div id="resu" style="border: solid 4px bisque;background-color: bisque;height: 300px;" draggable="true" >
1号:<h1 id="shou" ></h1>
2号:<h1 id="shou2" ></h1>
3号:<h1 id="shou3" ></h1>
</div>
<div id="xxxx" style="border: solid 4px bisque;background-color: bisque;height: 300px;margin-top: 400px;" draggable="true" >
</div>
</div>
</body>
</html>
写了之后发现然并。 手机上不能用这个拖动,浏览器不支持,醉了
- 触屏拉动页面
- 页面有背景图片,拉动页面时内容动,背景图片不动。
- 用selenium抓取需要拉动滑滚条的页面内容
- 系统登录页面拉动验证滑块进行验证
- mac下安装cordova环境配置,禁止页面上下拉动
- frame:通过鼠标拉动两个子页面的宽度
- html页面写完之后,发现下方滚动条可以向右拉动,一拉出现大片空白页面。
- js拉动效果
- UITableView 拉动卡原因
- Android List拉动刷新
- slidingmenu拉动效果 记录
- textarea 禁止拉动兼容
- AndroidPullToRefresh拉动效果配置
- UIScrollView 取消拉动反弹
- iscroll5 上下拉动刷新
- ImageView旋转,捏合,拉动,....
- Iscroll5-上下拉动刷新
- 垂直拉动 ViewPager
- CentOS 7 yum install mysql
- web网站中实现文档的下载
- GDB
- iOS开发-项目的完整重命名方法,图文教程。
- 从一个div向另一个div里面追加自己的元素
- 触屏拉动页面
- Android代码混淆及项目发布步骤记录
- 使用CD-K算法实现RBM
- Linux下创建库函数
- Leetcode 139. Word Break & 140. Word Break II
- 【设计模式】正确使用单例模式
- linux基础之常用命令(1)
- Rough Set Theory
- linux boa服务器配置解析