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 相关文章推荐
JavaScript中创建对象和继承示例解读
Feb 12 Javascript
js数组方法扩展实现数组统计函数
Apr 09 Javascript
JavaScript编程中布尔对象的基本使用
Oct 25 Javascript
JS+CSS实现闪烁字体效果代码
Apr 05 Javascript
jquery仿苹果的时间/日期选择效果
Mar 08 Javascript
vue使用watch 观察路由变化,重新获取内容
Mar 08 Javascript
Vue.js如何优雅的进行form validation
Apr 07 Javascript
Angular实现双向折叠列表组件的示例代码
Nov 21 Javascript
vue 解决数组赋值无法渲染在页面的问题
Oct 28 Javascript
javascript运行机制之执行顺序理解
Aug 03 Javascript
基于vue实现微博三方登录流程解析
Nov 04 Javascript
Vue中避免滥用this去读取data中数据
Mar 02 Vue.js
基于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
BBS(php &amp; mysql)完整版(六)
2006/10/09 PHP
PHP 面向对象实现代码
2009/11/11 PHP
在VS2008中编译MYSQL5.1.48的方法
2010/07/03 PHP
php通过数组实现多条件查询实现方法(字符串分割)
2014/05/06 PHP
PHP APC配置文件2套和参数详解
2014/06/11 PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
2014/10/29 PHP
JsEasy简介 JsEasy是什么?与下载
2007/03/07 Javascript
JavaScript constructor和instanceof,JSOO中的一对欢喜冤家
2009/05/25 Javascript
Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
2009/08/09 Javascript
javascript 数组排序函数
2009/08/20 Javascript
JavaScript闭包实例讲解
2014/04/22 Javascript
jquery实现增加删除行的方法
2015/02/03 Javascript
js转html实体的方法
2016/09/27 Javascript
JavaScript仿微博发布信息案例
2016/11/16 Javascript
EsLint入门学习教程
2017/02/17 Javascript
Angular开发者指南之入门介绍
2017/03/05 Javascript
JavaScript初学者必看“new”
2017/06/12 Javascript
解决vue js IOS H5focus无法自动弹出键盘的问题
2018/08/30 Javascript
详解微信小程序实现跑马灯效果(附完整代码)
2019/04/29 Javascript
微信小程序页面传多个参数跳转页面的实现方法
2019/05/17 Javascript
微信小程序使用蓝牙小插件
2019/09/23 Javascript
go和python调用其它程序并得到程序输出
2014/02/10 Python
python插入数据到列表的方法
2015/04/30 Python
Python中转换角度为弧度的radians()方法
2015/05/18 Python
Python基础教程之tcp socket编程详解及简单实例
2017/02/23 Python
利用Python在一个文件的头部插入数据的实例
2018/05/02 Python
Python下载的11种姿势(小结)
2020/11/18 Python
python判断all函数输出结果是否为true的方法
2020/12/03 Python
python uuid生成唯一id或str的最简单案例
2021/01/13 Python
Html5实现首页动态视频背景的示例代码
2019/09/25 HTML / CSS
顶岗实习接收函
2014/01/09 职场文书
四年级下册教学反思
2014/02/01 职场文书
行政人事专员岗位职责
2014/03/05 职场文书
机械设计及其自动化专业求职信
2014/06/09 职场文书
质量保证书格式模板
2015/02/27 职场文书
三八节祝酒词
2015/08/11 职场文书