1.需求

做一个h5正方形的拖拽框

2.分析

使用touchstart,touchmove,touchend这3个事件实现.

需要记录的数据有三组数据,分别是下图的(x0,y0),(x1,y1),(x2,y2)。A点表示最开始的点击位置

3.代码实现

下面是html和css部分,很简单的一部分

<style>
#outer{
position: relative;
width: 300px;
height: 300px;
background: green;
}
#inner{
position: absolute;
left: 0;
top:0;
width: 100px;
height: 100px; background: red;
}
</style> <div id="outer">
<div id="inner">
</div>
</div>

下面是js代码实现部分

记得要引入jq库哦!~

<script src="jquery-1.7.2.min.js"></script>
<script> var outer =document.getElementById('outer');
var inner =document.getElementById('inner'); var move={
sLeft:0,
sTop:0,
curLeft:0,
curTop:0,
startX:0,
startY:0,
makeMove:function(e){
var e= e || window.event;
var touch =e.changedTouches[0];
var x=touch.clientX;
var y=touch.clientY; l = x - this.sLeft;
t = y - this.sTop; //边界判断最小值 l = l<0?0:l;
t = t<0?0:t;
//边界判断最da值
var maxLeft = 300-100;
var maxTop = 300-100; l = l>maxLeft ?maxLeft:l;
t = t>maxTop?maxTop:t; move.curLeft = l;
move.curTop = t;
$('#inner').css({
'left':move.curLeft +'px',
'top':move.curTop+'px'
}) }
}
inner.addEventListener('touchstart',function(e){
//获得初始坐标
var e= e || window.event;
var touch =e.changedTouches[0];
var x=touch.clientX;
var y=touch.clientY; //对象属性赋值
move.sLeft = x-move.curLeft;
move.sTop = y-move.curTop;
move.startX=x;
move.startY=y; $('#inner').css({
'left':move.curLeft+'px',
'top':move.curTop+'px'
})
},false); inner.addEventListener('touchmove',function(e){
//获得坐标
var e= e || window.event;
var touch =e.changedTouches[0];
var x=touch.clientX;
var y=touch.clientY; //获得偏移的值
move.makeMove(e); },false); inner.addEventListener('touchend',function(e){ },false); </script>

html5拖拽实现的更多相关文章

  1. Html5拖拽复制

    拖拽是一种常见的特性,即抓取对象以后拖到另一个位置. 在 HTML5 中,拖拽是标准的一部分,任何元素都能够拖拽. Html5拖拽非常常见的一个功能,但是大部分拖拽的案例都是一个剪切的过程, 项目中需 ...

  2. html5拖拽

    html5拖拽一 <!DOCTYPE html> <html> <head lang="en"> <meta charset=" ...

  3. HTML5 拖拽复制功能的实现方法

    Internet Explorer 9FirefoxOpera 12ChromeSafari 5 v1.0代码部分 <!DOCTYPE html><html><head& ...

  4. 每天一个JavaScript实例-html5拖拽

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  5. HTML5拖拽功能中 dataTransfer对象详解

    有了HTML5,老板再也不用担心我们的上传了,再加上有拖拽上传是不是很酷.百度一下,有关HTML5拖拽上传的文章和实例不少,都缺不了一个至关重要的东东DataTransfer.但是详细介绍的不多,尤其 ...

  6. 基于html5拖拽api实现列表的拖拽排序

    基于html5拖拽api实现列表的拖拽排序 html代码: <ul ondrop="drop_handler(event);" ondragover="dragov ...

  7. html5拖拽事件 xhr2 实现文件上传 含进度条

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  8. html5拖拽总结

    拖拽(Drag 和 drop)是 HTML5 标准的组成部分.拖拽是一种常见的特性,即抓取对象以后拖到另一个位置. Internet Explorer 9.Firefox.Opera 12.Chrom ...

  9. HTML5拖拽实例

    最近应该会用到,借用一下......小妹儿,你又变懒了 拖拽相关属性 draggable属性是html5的全局属性,是html5支持拖放操作的方式之一,用来表示元素是否可以被拖放,draggable有 ...

  10. html之div拖拽,html5拖拽

    html之div拖拽 http://www.w3school.com.cn/html5/html_5_draganddrop.asp

随机推荐

  1. html img src base64

    网页上有些图片的src或css背景图片的url后面跟了一大串字符,比如:data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAYAAABId ...

  2. C#中使用DateTimePicker控件显示修改日期时间

    1.只显示日期   默认就是   2.只显示时间   修改属性 Format 设为Time ShowUpDown设为true   3.同时显示日期时间   Format设为Custom CustomF ...

  3. Ruby on rails学习笔记——安装环境

    出现问题: C:\Users\len>gem install rails ERROR: While executing gem ... (Gem::RemoteFetcher::FetchErr ...

  4. HTML学习笔记——锚链接、pre标签、实体

    1>锚链接 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...

  5. 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【八】——Web Api的安全性

    系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html 前言 这一篇文章我们主要来探讨一下Web Api的安全性,到目前为止所有的请求都是走的Http协议 ...

  6. javascript 小技巧

    1:Boolean()==!! console.log(Boolean(888));//true console.log(!!(888));//true console.log(Boolean(&qu ...

  7. -- c语言数据类型总结 --

    C语言中的数据类型总结

  8. flask安装及第一个程序

    1.flask是一个轻量级的python web框架 ·1.Flask 依赖两个外部库: Jinja2 模板引擎和 Werkzeug WSGI 套件 ·2.安装: # easy_install fla ...

  9. EditPlus开发Python的简单设置

    EditPlus是一个功能强大的编辑器,这里介绍用它来开发Python程序所需要的简单设置. 环境:win7 1.设置Python语法缩进: [1]工具-->设置用户自定义工具 [2]在分类面板 ...

  10. 缓存 HttpContext.Current.Cache和HttpRuntime.Cache的区别

    先看MSDN上的解释: HttpContext.Current.Cache:为当前 HTTP 请求获取Cache对象. HttpRuntime.Cache:获取当前应用程序的Cache.  我们再用. ...