html5拖拽实现
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拖拽实现的更多相关文章
- Html5拖拽复制
拖拽是一种常见的特性,即抓取对象以后拖到另一个位置. 在 HTML5 中,拖拽是标准的一部分,任何元素都能够拖拽. Html5拖拽非常常见的一个功能,但是大部分拖拽的案例都是一个剪切的过程, 项目中需 ...
- html5拖拽
html5拖拽一 <!DOCTYPE html> <html> <head lang="en"> <meta charset=" ...
- HTML5 拖拽复制功能的实现方法
Internet Explorer 9FirefoxOpera 12ChromeSafari 5 v1.0代码部分 <!DOCTYPE html><html><head& ...
- 每天一个JavaScript实例-html5拖拽
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- HTML5拖拽功能中 dataTransfer对象详解
有了HTML5,老板再也不用担心我们的上传了,再加上有拖拽上传是不是很酷.百度一下,有关HTML5拖拽上传的文章和实例不少,都缺不了一个至关重要的东东DataTransfer.但是详细介绍的不多,尤其 ...
- 基于html5拖拽api实现列表的拖拽排序
基于html5拖拽api实现列表的拖拽排序 html代码: <ul ondrop="drop_handler(event);" ondragover="dragov ...
- html5拖拽事件 xhr2 实现文件上传 含进度条
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- html5拖拽总结
拖拽(Drag 和 drop)是 HTML5 标准的组成部分.拖拽是一种常见的特性,即抓取对象以后拖到另一个位置. Internet Explorer 9.Firefox.Opera 12.Chrom ...
- HTML5拖拽实例
最近应该会用到,借用一下......小妹儿,你又变懒了 拖拽相关属性 draggable属性是html5的全局属性,是html5支持拖放操作的方式之一,用来表示元素是否可以被拖放,draggable有 ...
- html之div拖拽,html5拖拽
html之div拖拽 http://www.w3school.com.cn/html5/html_5_draganddrop.asp
随机推荐
- mybatis的逆向工程
mybatis的逆向工程是很大的减少了程序员对代码的编写工作,由于mybatis是半自动的sql语句使用,我们在项目中一般都是采用逆向工程来生成mybatis的文件,mapper接口相当于我们平常所说 ...
- python学习笔记-(七)python基础--集合、文件操作&函数
本节内容 1.集合操作 2.文件操作 3.字符编码与转码 4.函数操作 1.集合操作 集合是一个无序的.不重复的数据组合: 1.1 常用操作 它的作用是: 1)自动去重:列表变成集合,自动去重: &g ...
- awk sed
awk -F '|' '{print $3","$4","$5}' cred.ts | sed 's/-//g'
- CentOS只允许部分IP登陆ssh |ssh 允许指定IP
在/etc/hosts.allow输入 (其中192.168.10.88是你要允许登陆ssh的ip,或者是一个网段192.168.10.0/24) sshd:192.168.10.88:all ...
- VM安装linux
看图简单流程即可.注意磁盘空间至少30G,实用oracle数据库时需要更大,可以后期增加. 静待安装完成即可.一定记得创建的用户名及密码,及root用户的密码.
- JavaWeb学习笔记——jsp基础语法
1.JSP注释 显式注释 <!-- 注释内容 --> 隐式注释,隐式注释在客户端无法看见 // /* */ <% 注释内容 %> 2.Scriptlet(小脚本程序) 所有嵌入 ...
- Which hashing algorithm is best for uniqueness and speed?
http://programmers.stackexchange.com/questions/49550/which-hashing-algorithm-is-best-for-uniqueness- ...
- Apache源码包安装和子配置文件介绍--update.2014-12-5
安装apache: 官网:http://httpd.apache.org/download.cgi#apache24 1.wget http://mirror.bit.edu.cn/apache//h ...
- idea引用自己的插件
- verilog阻塞与非阻塞的初步理解(一)
通过两个模块来区别两者.测试平台:Modelsim altera 6.5b 阻塞模块: module blocking(clk,a,b,c); :] a; input clk; :] b,c; :] ...