JS实现的自定义网页拖动类


Posted in Javascript onNovember 06, 2015

本文实例讲述了JS实现的自定义网页拖动类。分享给大家供大家参考,具体如下:

先来看运行效果截图如下:

JS实现的自定义网页拖动类

在线演示地址如下:

具体代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>自写的拖动类……</title>
<script type="text/javascript">
var d=document;//给document对象一个通用的事件侦听方法
d.addListener=function(e,f,b){
 this.attachEvent?this.attachEvent('on'+e,f):this.addEventListener(e,f,b);
}
d.removeListener=function(e,f,b){
 this.detachEvent?this.detachEvent('on'+e,f):this.removeEventListener(e,f,b);
}
function $(){//接收一个id参数,返回带有startDrag方法的对象
 var o=document.getElementById(arguments[0]);
 o.addListener=function(e,f,b){
  this.attachEvent?this.attachEvent('on'+e,f):this.addEventListener(e,f,b);
 }
 o.removeListener=function(e,f,b){
  this.detachEvent?this.detachEvent('on'+e,f):this.removeEventListener(e,f,b);
 }
 o.startDrag=function(obj){//参数obj默认为o本身,可以传其它参数以确定要移动的对象
  var obj=obj?obj:o;
  var sx,sy;
  o.style.cursor="move";
  o.addListener("mousedown",function(e){
   e||event;
   if(e.button==1||e.button==0){
    sx=e.clientX-obj.offsetLeft;sy=e.clientY-obj.offsetTop;
    d.addListener("mousemove",move,false);
    d.addListener("mouseup",stopDrag,false);
   }
  },false);
  var stopDrag=function(){
   d.removeListener("mousemove",move,false);
   d.removeListener("mouseup",stopDrag,false);
  }
  var move=function(e){
   e||event;
   window.getSelection ? window.getSelection().removeAllRanges() :
    document.selection.empty();
   if(e.preventDefault)e.preventDefault();//这两句便是解决firefox拖动问题的.
   with (obj.style){
    position="absolute"
    left=e.clientX-sx+"px";
    top=e.clientY-sy+"px";
   }
  }
 }
 return o; 
}
window.onload=function(){$("ok").startDrag($("os"))}//本例中拖动ok元素,移动其父元素
</script>
<style type="text/css">
*{margin:0;padding:0}
#ok{width:215px;height:170px;background:url(images/sample1.gif)}
#os{width:400px;height:300px;background:#09f;left:300px}
#os2{width:400px;height:300px;background:#f90;}
</style>
</head>
<body>
<div id="os"><p id="ok"></p></div>
<div id="os2"></div>
</body>
</html>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
一个无限级XML绑定跨框架菜单(For IE)
Jan 27 Javascript
JavaScript 检测浏览器和操作系统的脚本
Dec 26 Javascript
js 对象是否存在判断
Jul 15 Javascript
基于jquery实现图片广告轮换效果代码
Jul 07 Javascript
ExtJs默认的字体大小改变的几种方法(自己整理)
Apr 18 Javascript
使用jQuery简单实现模拟浏览器搜索功能
Dec 21 Javascript
jquery分割字符串的方法
Jun 24 Javascript
JavaScript实现给按钮加上双重动作的方法
Aug 14 Javascript
vue通过点击事件读取音频文件的方法
May 30 Javascript
微信小程序input框中加入小图标的实现方法
Jun 19 Javascript
jQuery.extend 与 jQuery.fn.extend的用法及区别实例分析
Jul 25 jQuery
vue路由插件之vue-route
Jun 13 Javascript
js基础知识(公有方法、私有方法、特权方法)
Nov 06 #Javascript
JS实现的N多简单无缝滚动代码(包含图文效果)
Nov 06 #Javascript
javascript中的altKey 和 Event属性大全
Nov 06 #Javascript
JS日期加减,日期运算代码
Nov 05 #Javascript
程序员必知35个jQuery 代码片段
Nov 05 #Javascript
js如何实现淡入淡出效果
Nov 18 #Javascript
JavaScript数组去重的五种方法
Nov 05 #Javascript
You might like
一篇不错的PHP基础学习笔记
2007/03/18 PHP
从康盛产品(discuz)提取出来的模板类
2011/06/28 PHP
thinkphp3查询mssql数据库乱码解决方法分享
2014/02/11 PHP
浅析php工厂模式
2014/11/25 PHP
php中smarty实现多模版网站的方法
2015/06/11 PHP
PHP实现简单汉字验证码
2015/07/28 PHP
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
2016/11/16 PHP
PHP实现权限管理功能示例
2017/09/22 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
php常用的工具开发整理
2019/09/26 PHP
基于jQuery的动态增删改查表格信息,可左键/右键提示(原创自Zjmainstay)
2012/07/31 Javascript
定义JavaScript二维数组采用定义数组的数组来实现
2012/12/09 Javascript
js父页面中使用子页面的方法
2016/01/09 Javascript
Node.js使用NodeMailer发送邮件实例代码
2017/03/06 Javascript
Vue列表渲染的示例代码
2018/11/01 Javascript
JS获取月的第几周和年的第几周实例代码
2018/12/05 Javascript
使用Vue调取接口,并渲染数据的示例代码
2019/10/28 Javascript
在Django的URLconf中使用多个视图前缀的方法
2015/07/18 Python
Python3 assert断言实现原理解析
2020/03/02 Python
python 安装教程之Pycharm安装及配置字体主题,换行,自动更新
2020/03/13 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
2020/06/10 Python
Python实现自动签到脚本的示例代码
2020/08/19 Python
python从Oracle读取数据生成图表
2020/10/14 Python
HTML5上传文件显示进度的实现代码
2012/08/30 HTML / CSS
探索欧洲最好的品牌:Bombinate
2019/06/14 全球购物
Java程序员常见面试题
2015/07/16 面试题
英文求职信结束语大全
2013/10/26 职场文书
称象教学反思
2014/02/03 职场文书
《小石潭记》教学反思
2014/02/13 职场文书
安全检查汇报材料
2014/12/26 职场文书
交警失职检讨书
2015/01/26 职场文书
2015小学教师德育工作总结
2015/05/12 职场文书
职工食堂管理制度
2015/08/06 职场文书
给校长的建议书范文
2015/09/14 职场文书
八年级英语教学反思
2016/02/15 职场文书
一文了解JavaScript用Element Traversal新属性遍历子元素
2021/11/27 Javascript