javascript实现移动端上的触屏拖拽功能


Posted in Javascript onMarch 04, 2016

本文是分享了javascript实现移动端上的触屏拖拽功能,具体内容如下

效果图:

javascript实现移动端上的触屏拖拽功能

实现代码:

<!DOCTYPE html>
<html>
 <head>
 <meta charset="utf-8">
 <title></title>
 <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />
 <style>
  body {
  height: 2000px;
  }
  #block {
  width:200px;
  height:200px;
  background-color: red;
  position: absolute;
  left: 0;
  top: 0;
  }
 </style>
 </head>
 <body>
 <div>
  touchstart,touchmove,
  touchend,touchcancel
 </div>
 <div id="block"></div>
<script>
 // 获取节点
 var block = document.getElementById("block");
 var oW,oH;
 // 绑定touchstart事件
 block.addEventListener("touchstart", function(e) {
  console.log(e);
  var touches = e.touches[0];
  oW = touches.clientX - block.offsetLeft;
  oH = touches.clientY - block.offsetTop;
  //阻止页面的滑动默认事件
  document.addEventListener("touchmove",defaultEvent,false);
 },false)

 block.addEventListener("touchmove", function(e) {
  var touches = e.touches[0];
  var oLeft = touches.clientX - oW;
  var oTop = touches.clientY - oH;
  if(oLeft < 0) {
  oLeft = 0;
  }else if(oLeft > document.documentElement.clientWidth - block.offsetWidth) {
  oLeft = (document.documentElement.clientWidth - block.offsetWidth);
  }
  block.style.left = oLeft + "px";
  block.style.top = oTop + "px";
 },false);
 
 block.addEventListener("touchend",function() {
  document.removeEventListener("touchmove",defaultEvent,false);
 },false);
 function defaultEvent(e) {
  e.preventDefault();
 }
</script>
 </body>
</html>

以上就是本文的全部内容,希望对大家学习javascript程序设计有所帮助。

Javascript 相关文章推荐
经典海量jQuery插件 大家可以收藏一下
Feb 07 Javascript
js利用数组length属性清空和截短数组的小例子
Jan 15 Javascript
AngularJS入门之动画
Jul 27 Javascript
Highcharts入门之简介
Aug 02 Javascript
总结JavaScript的正则与其他语言的不同之处
Aug 25 Javascript
微信小程序 滚动到某个位置添加class效果实现代码
Apr 19 Javascript
angularjs2 ng2 密码隐藏显示的实例代码
Aug 01 Javascript
简单快速的实现js计算器功能
Aug 17 Javascript
Bootstrap modal只加载一次数据的解决办法(推荐)
Nov 24 Javascript
详解VUE Element-UI多级菜单动态渲染的组件
Apr 25 Javascript
微信小程序实现多选框全选与取消全选功能示例
May 14 Javascript
Vue的全局过滤器和私有过滤器的实现
Apr 20 Javascript
基于zepto的移动端轻量级日期插件--date_picker
Mar 04 #Javascript
基于Javascript实现二级联动菜单效果
Mar 04 #Javascript
jquery ajax双击div可直接修改div中的内容
Mar 04 #Javascript
js实现文字滚动效果
Mar 03 #Javascript
JavaScript使ifram跨域相互访问及与PHP通信的实例
Mar 03 #Javascript
JQuery日期插件datepicker的使用方法
Mar 03 #Javascript
jQuery日历插件datepicker用法详解
Mar 03 #Javascript
You might like
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
2007/09/30 PHP
PHP5+UTF8多文件上传类
2008/10/17 PHP
PHP中其实也可以用方法链
2011/11/10 PHP
php之XML转数组函数的详解
2013/06/07 PHP
PHP中Fatal error session_start()错误解决步骤
2014/08/05 PHP
PHP生成压缩文件实例
2015/02/07 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
2016/01/19 PHP
PHP编写学校网站上新生注册登陆程序的实例分享
2016/03/21 PHP
PHP XML Expat解析器知识点总结
2019/02/15 PHP
php实现文件上传基本验证
2020/03/04 PHP
PHP const定义常量及global定义全局常量实例解析
2020/05/28 PHP
createElement动态创建HTML对象脚本代码
2008/11/24 Javascript
JQuery 获取json数据$.getJSON方法的实例代码
2013/08/02 Javascript
js data日期初始化的5种方法
2013/12/29 Javascript
深入浅出ES6新特性之函数默认参数和箭头函数
2016/08/01 Javascript
node.js 用socket实现聊天的示例代码
2017/10/17 Javascript
VUE 实现复制内容到剪贴板的两种方法
2019/04/24 Javascript
layui2.0使用table+laypage实现真分页
2019/07/27 Javascript
vue用elementui写form表单时,在label里添加空格操作
2020/08/13 Javascript
Python文件右键找不到IDLE打开项解决办法
2015/06/08 Python
python 函数内部修改外部变量的方法
2018/12/18 Python
Python实现的线性回归算法示例【附csv文件下载】
2018/12/29 Python
在Keras中CNN联合LSTM进行分类实例
2020/06/29 Python
python 爬取小说并下载的示例
2020/12/07 Python
英国计算机产品零售商:Novatech(定制个人电脑、笔记本电脑、工作站和服务器)
2018/01/28 全球购物
新闻发布会主持词
2014/03/28 职场文书
个人委托书怎么写
2014/09/17 职场文书
2014年学习部工作总结
2014/11/12 职场文书
2014年检验员工作总结
2014/11/19 职场文书
清明节寄语2015
2015/03/23 职场文书
2015年乡镇科普工作总结
2015/05/13 职场文书
2015年计划生育协会工作总结
2015/05/13 职场文书
毕业论文答辩开场白和答辩技巧
2015/05/27 职场文书
pandas 操作 Excel操作总结
2021/03/31 Python
MySQL基础(二)
2021/04/05 MySQL
基于PyQT5制作一个桌面摸鱼工具
2022/02/15 Python