一 拖放

  拖放(Drag 和 drop)是 HTML5 标准的组成部分。拖放是一种常见的特性,即抓取对象以后拖到另一个位置。在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放。
  课程参考 http://www.w3school.com.cn/html5/html_5_draganddrop.asp

二 手机触屏事件

1 触屏事件

touchstart
  当手指触摸到屏幕时触发
touchmove
  手指在屏幕上移动时触发
touchend
  手指离开屏幕时触发
touchenter
  当触点进入某个 element 时触发。
touchleave
  当触点离开某个 element 时触发。
touchcancel
  当触点由于某些原因被中断时触发。有几种可能的原因如下(具体的原因根据不同的设备和浏览器有所不同):
  由于某个事件取消了触摸:例如触摸过程被一个模态的弹出框打断。
总结:触点离开了文档窗口,而进入了浏览器的界面元素、插件或者其他外部内容区域。当用户产生的触点个数超过了设备支持的个数,从而导致 TouchList 中最早的 Touch 对象被取消。
1.1 触控手机屏幕例子:

<!doctype html>
<html> <head>
<meta charset="UTF-8">
<title>Document</title>
<style>
#div {
width: 100px;
height: 100px;
background: red;
}
</style>
</head>
<body>
<div id="div"></div>
</body>
<script>
var div = document.getElementById("div");
div.addEventListener("touchstart", function() {
console.log("接触到屏幕"); })
div.addEventListener("touchmove", function() {
console.log("在屏幕上移动"); })
div.addEventListener("touchend", function() {
console.log("离开屏幕"); })
</script>
</html>

2 触控点信息

  每个触摸事件都包括了三个触摸列表,每个列表里包含了对应的一系列触摸点(用来实现多点触控):
touches:当前位于屏幕上的所有手指的列表。
targetTouches:位于当前DOM元素上手指的列表。
changedTouches:涉及当前事件手指的列表。
  每个触摸点由包含了如下触摸信息(常用):
identifier:一个数值,唯一标识触摸会话(touch session)中的当前手指。一般为从0开始的流水号(android4.1,uc)
target:DOM元素,是动作所针对的目标。
pageX/pageX/clientX/clientY/screenX/screenY:一个数值,动作在屏幕上发生的位置(page包含滚动距离,client不包含滚动距离,screen则以屏幕为基准)。 
radiusX/radiusY/rotationAngle:画出大约相当于手指形状的椭圆形,分别为椭圆形的两个半径和旋转角度
2.1 打印触屏事件信息

<!doctype html>
<html >
<head>
<meta charset="UTF-8">
<title></title>
<style>
#div{
width:100px;height:100px;background:red;
}
</style>
</head>
<body>
<div id="div"></div>
</body> <script>
var div = document.getElementById("div");
div.addEventListener("touchstart",function(e){
console.log("touchstart e.targetTouches="+e.targetTouches.length ); })
div.addEventListener("touchmove",function(e){
console.log("touchmove e.changedTouches[0].pageX="+e.changedTouches[].pageX); })
div.addEventListener("touchend",function(){
console.log("离开屏幕"); })
</script>
</html>

2.2 在屏幕上移动图片例子  

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<meta name="viewport" content="initial-scale=1,user-scalable =no">
<style>
#myDiv{
left: 50px;
top: 100px;
position: fixed;
border: 4px solid red;
}
</style>
</head> <body> <div id="myDiv"><img src="img/guangdongIcon.png"/></div> <script type="text/javascript">
var obj = document.getElementById('myDiv');
obj.addEventListener('touchmove', function(event) {
console.log(event.targetTouches.length)
// 如果这个元素的位置内只有一个手指的话
if(event.targetTouches.length == ) {    
event.preventDefault(); // 阻止浏览器默认事件,重要
var touch = event.targetTouches[];
// 把元素放在手指所在的位置
obj.style.left = touch.pageX - + 'px';
obj.style.top = touch.pageY - + 'px';
}
}, false);
</script>
</body> </html>

知识点:

  preventDefault方法就是可以阻止它的默认行为的发生而发生其他的事情。以下代码JS会阻止链接跳转

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<a href="http://www.baidu.com" id="test">测试跳转 </a> <script type="text/javascript">
function stopDefault(e) {
if(e && e.preventDefault) { //如果是FF下执行这个
e.preventDefault();
} else {
window.event.returnValue = false; //如果是IE下执行这个
}
return false;
} var test = document.getElementById('test');
test.onclick = function(e) {
alert('URL:' + this.href + ', 不会跳转');
stopDefault(e);
}
</script>
</body> </html>

资料参考:

http://www.w3school.com.cn/html5/html_5_draganddrop.asp

http://blog.sina.com.cn/s/blog_51048da70101f0ex.html

HTML5学习总结-09 拖放和手机触屏事件的更多相关文章

  1. jQuery手机触屏拖动滑块验证跳转插件

    HTML: <!DOCTYPE html> <html lang="en"> <head> <title>jQuery手机触屏拖动滑 ...

  2. 手机触屏滑动图片切换插件swiper.js

    今天给大家分享一款手机触屏滑动图片切换插件swiper.js是一款swiper手机触屏滑动图片幻灯片,适合各种尺寸.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div ...

  3. 转:Android随笔之——使用Root权限实现后台模拟全局按键、触屏事件方法(类似按键精灵)

    本文转载自CSDN的jzj1993,原文连接:http://blog.csdn.net/jzj1993/article/details/39158865 有时我们需要使用安卓实现在后台模拟系统按键,比 ...

  4. 移动端touch触屏滑动事件、滑动触屏事件监听!

    一.触摸事件 ontouchstart.ontouchmove.ontouchend.ontouchcancel 目前移动端浏览器均支持这4个触摸事件,包括IE.由于触屏也支持MouseEvent,因 ...

  5. 从零开始学 Web 之 移动Web(二)JD移动端网页,移动触屏事件

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  6. (转)js的左右滑动触屏事件

    原文:http://blog.sina.com.cn/s/blog_6a0a183f0100zsfk.html (2012-01-20 08:55:53) 转载▼ 标签: 移动设备 触屏事件 杂谈 分 ...

  7. [IOS]自定义长触屏事件

    写一个Demo来自定义一个长触屏事件,自定义长按手势. 实现步骤: 1.创建一个自定义手势类,命名为LongPressGestureRecognizer,在创建的时候继承UIGestureRecogn ...

  8. cocos2d-x触屏事件(单点触屏)

    转自:http://blog.csdn.net/onerain88/article/details/7550009 一般经常用到的触屏的情况有两种:一种是Layer统一接收触屏消息,然后由程序根据需要 ...

  9. js触屏事件

    js的左右滑动触屏事件,主要有三个事件:touchstart,touchmove,touchend.这三个事件最重要的属性是 pageX和 pageY,表示X,Y坐标. touchstart在触摸开始 ...

随机推荐

  1. unity3d 扩展NGUI Tweener —— TweenTime

    这是今天做的一个小功能 策划想要一个时间滚动效果 那就搞呗!思路和之前写的tweenFillAmount一样 传送门:http://www.cnblogs.com/shenggege/p/479892 ...

  2. 【REST WCF】30分钟理论到实践

    先来点理论知识,来自 http://www.cnblogs.com/simonchen/articles/2220838.html 一.什么是Rest REST软件架构是由Roy Thomas Fie ...

  3. SQL2008R2 不支持用该后端版本设计数据库关系图或表

    向下不兼容. 要么安装SQL2012,要么把SQL2012数据库通过脚本转成2008

  4. Java 自动装箱与拆箱(Autoboxing and unboxing)

    什么是自动装箱拆箱 基本数据类型的自动装箱(autoboxing).拆箱(unboxing)是自J2SE 5.0开始提供的功能. 一般我们要创建一个类的对象实例的时候,我们会这样: Class a = ...

  5. 欧几里德与扩展欧几里德算法 Extended Euclidean algorithm

    欧几里德算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数. 基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd( ...

  6. void与void之间没有隐式转换(纯属恶搞,请勿在意)

    强大的vs弹出了这个提示:.有没有觉得强大的vs不应该出现该提示. 但就是出现了. 看客,您知道怎么让vs弹出这个提示吗^~^

  7. 从 Microsoft SQL Server 迁移到 Oracle

    来源于:http://www.oracle.com/technetwork/cn/database/migration/sqlserver-095136-zhs.html Oracle SQL Dev ...

  8. 去掉iPhone、iPad的默认按钮样式 去掉高光样式:

    input[type="button"], input[type="submit"], input[type="reset"] { -web ...

  9. Java中字符串的几个实例

    String str=new String("abc");new 对象时,位于堆中,同时看字符串常量中是否有字符串"abc",如果没有,则进行添加,同时进行关联 ...

  10. Python 小细节备忘

    1. 多行字符串可以通过三个连续的单引号 (”’) 或是双引号 (“”") 来进行标示 >>> a='''a bc def ''' >>> print a ...