百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>JS教程> JS如何实现简易拖放效果的教程
分享文章到:

JS如何实现简易拖放效果的教程

发布时间:01/15 来源: 浏览: 关键词:
这篇文章介绍了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>
</head>
<body>
<script type="text/JavaScript">
<!--
varisIE = (document.all) ?true:false;// 是否ie
var$ =function(id) {
  //返回id对象
  return"string"==typeofid ? document.getElementById(id) : id;
};
varClass = {
  // 带构造方法的类
  create:function() {
    returnfunction() {this.initialize.apply(this, arguments); }//用apply应用下面的initialize初始化属性
  }
}
varExtend =function(destination, source) {
  //继承
  for(varpropertyinsource) {
    destination[property] = source[property];
  }
}
varBind =function(object, fun) {
  returnfunction() {
    returnfun.apply(object, arguments);
  }
}
/**
用object对象调用fun参数是event||window event
**/
varBindAsEventListener =function(object, fun) {
  returnfunction(event) {
    returnfun.call(object, (event || window.event));
  }
}
/**
添加帧听器事件
@oTarget 目标对象
@sEventType 事件类型
@fnHandler 目标触发事件对象
**/
functionaddEventHandler(oTarget, sEventType, fnHandler) {
  if(oTarget.addEventListener) {
    oTarget.addEventListener(sEventType, fnHandler,false);//firefox
  }elseif(oTarget.attachEvent) {
    oTarget.attachEvent("on"+ sEventType, fnHandler);//ie
  }else{
    oTarget["on"+ sEventType] = fnHandler;//other
  }
};
/**
清除添加的帧听器事件
@oTarget 目标对象
@sEventType 事件类型
@fnHandler 目标触发事件对象
**/
functionremoveEventHandler(oTarget, sEventType, fnHandler) {
  if(oTarget.removeEventListener) {
    oTarget.removeEventListener(sEventType, fnHandler,false);
  }elseif(oTarget.detachEvent) {
    oTarget.detachEvent("on"+ sEventType, fnHandler);
  }else{
    oTarget["on"+ sEventType] =null;
  }
};
/*------------------------------相关模型构造完毕-----------------------------------*/
//拖放程序
varSimpleDrag = Class.create();
SimpleDrag.prototype = {
 //拖放对象,触发对象,初始化
 initialize:function(drag) {
  this.Drag = $(drag);
  this._x =this._y = 0;
  this._fM = BindAsEventListener(this,this.Move);//_fM方法就是应用MOVE方法参数是event||window.event
  this._fS = Bind(this,this.Stop);//_fS类方法就是Stop方法
  this.Drag.style.position ="absolute";
  this.Drag.style.cursor ="move";
  addEventHandler(this.Drag,"mousedown", BindAsEventListener(this,this.Start));
 },
 //准备拖动
 Start:function(oEvent) {
  this._x = oEvent.clientX -this.Drag.offsetLeft;
  this._y = oEvent.clientY -this.Drag.offsetTop;
  addEventHandler(document,"mousemove",this._fM);
  addEventHandler(document,"mouseup",this._fS);
 },
 //拖动
 Move:function(oEvent) {
  this.Drag.style.left = oEvent.clientX -this._x +"px";
  this.Drag.style.top = oEvent.clientY -this._y +"px";
 },
 //停止拖动
 Stop:function() {
  removeEventHandler(document,"mousemove",this._fM);
  removeEventHandler(document,"mouseup",this._fS);
 }
};
// -->
</script>
<div id="idDrag"style="border:5px solid #0000FF; background:#C4E3FD; width:50px; height:50px;"></div>
<script type="text/javascript">
<!--
newSimpleDrag("idDrag");
// -->
</script>
</body>
</html>

 

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有5人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板