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+css3实现网页背景花瓣随机飘落特效
Aug 17 Javascript
基于jquery实现导航菜单高亮显示(两种方法)
Aug 23 Javascript
javascript简单判断输入内容是否合法的方法
May 11 Javascript
当jquery ajax遇上401请求的解决方法
May 19 Javascript
又一款js时钟!transform实现时钟效果
Aug 15 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
Dec 24 Javascript
Angular的模块化(代码分享)
Dec 26 Javascript
原生Javascript插件开发实践
Jan 09 Javascript
详解vue的数据binding绑定原理
Apr 12 Javascript
javascript编写简易计算器
May 06 Javascript
AngualrJs清除定时器遇到的坑
Oct 13 Javascript
如何在微信小程序中使用骨架屏的步骤
Jun 12 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
《忧国的莫里亚蒂》先导宣传图与STAFF公开
2020/03/04 日漫
德生9700DX电路分析
2021/03/02 无线电
php轻松实现中英文混排字符串截取
2014/05/28 PHP
Thinkphp多文件上传实现方法
2014/10/31 PHP
PHP校验15位和18位身份证号的类封装
2018/11/07 PHP
使用Javascript接收get传递的值的代码
2011/11/30 Javascript
extjs tabpanel限制选项卡数量实现思路及代码
2013/04/02 Javascript
关于js注册事件的常用方法
2013/04/03 Javascript
跟我学习javascript的var预解析与函数声明提升
2015/11/16 Javascript
前端分页功能的实现以及原理(jQuery)
2017/01/22 Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
2017/04/20 Javascript
Flask中获取小程序Request数据的两种方法
2017/05/12 Javascript
bootstrap3使用bootstrap datetimepicker日期插件
2017/05/24 Javascript
Vue路由跳转问题记录详解
2017/06/15 Javascript
js保留两位小数方法总结
2018/01/31 Javascript
vue.js中实现登录控制的方法示例
2018/04/23 Javascript
js实现购物车功能
2018/06/12 Javascript
jquery实现上传文件进度条
2020/03/26 jQuery
分享一款超好用的JavaScript 打包压缩工具
2020/04/26 Javascript
如何实现vue的tree组件
2020/12/03 Vue.js
[02:02:38]VG vs Mineski Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
python备份文件的脚本
2008/08/11 Python
Python3.x中自定义比较函数
2015/04/24 Python
Python数据分析之双色球中蓝红球分析统计示例
2018/02/03 Python
python获取Pandas列名的几种方法
2019/08/07 Python
通过实例简单了解Python中yield的作用
2019/12/11 Python
使用Keras实现Tensor的相乘和相加代码
2020/06/18 Python
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
2016/12/22 HTML / CSS
GANT英国官方网上商店:甘特衬衫
2018/02/06 全球购物
N:Philanthropy官网:美国洛杉矶基础款服装
2020/06/09 全球购物
前台接待员岗位职责
2014/01/02 职场文书
小学校长竞聘演讲稿
2014/05/16 职场文书
运动会广播稿200字
2014/10/18 职场文书
贫困生助学金感谢信
2015/01/21 职场文书
Nginx域名转发https访问的实现
2021/03/31 Servers
python中 Flask Web 表单的使用方法
2022/05/20 Python