// by zhangxinxu welcome to visit my personal website http://www.zhangxinxu.com/
// zxx.drag v1.0 2010-03-23 å…ƒç´ çš„æ‹–æ‹½å®žçŽ° var params = {
left: 0,
top: 0,
currentX: 0,
currentY: 0,
flag: false
};
//获取相关CSS属性
var getCss = function(o,key){
return o.currentStyle? o.currentStyle[key] : document.defaultView.getComputedStyle(o,false)[key];
}; //拖拽的实现
var startDrag = function(bar, target, callback){
if(getCss(target, "left") !== "auto"){
params.left = getCss(target, "left");
}
if(getCss(target, "top") !== "auto"){
params.top = getCss(target, "top");
}
//o是移动对象
bar.onmousedown = function(event){
params.flag = true;
if(!event){
event = window.event;
//防止IE文字选中
bar.onselectstart = function(){
return false;
}
}
var e = event;
params.currentX = e.clientX;
params.currentY = e.clientY;
};
document.onmouseup = function(){
params.flag = false;
if(getCss(target, "left") !== "auto"){
params.left = getCss(target, "left");
}
if(getCss(target, "top") !== "auto"){
params.top = getCss(target, "top");
}
};
document.onmousemove = function(event){
var e = event ? event: window.event;
if(params.flag){
var nowX = e.clientX, nowY = e.clientY;
var disX = nowX - params.currentX, disY = nowY - params.currentY;
target.style.left = parseInt(params.left) + disX + "px";
target.style.top = parseInt(params.top) + disY + "px";
} if (typeof callback == "function") {
callback(parseInt(params.left) + disX, parseInt(params.top) + disY);
}
}
};

最新文章

  1. 微信支付开发(1) JS API支付
  2. 用java代码手动控制kafkaconsumer偏移量
  3. Slave2: no datanode to stop(HADOOP_PID_DIR)
  4. Potocol Buffer详解
  5. PHP高级笔记汇总
  6. 【转载】Apache kafka原理与特性(0.8V)
  7. laravel post请求失败
  8. Courses(最大匹配)
  9. java中String是对象还是类?详解java中的String
  10. thinkphp获取特定字段的两种方法
  11. Vue 组件(component)之 精美的日历
  12. Canvas中绘制贝塞尔曲线
  13. arcgis raster clip and mask difference 栅格 提取 clip 和 mask 方法的区别
  14. 2018-01微信小程序--直播
  15. Centos6.5部署Rsyslog+cron+rsync备份服务器
  16. python自动化开发-8
  17. BAI度 内部资料!Python_Threads多线程
  18. 【x】 PAT/BasicLevel_C++/1002. 写出这个数 (20).cpp
  19. Oracle数据库日期格式转换操作
  20. java程序猿常用Linux命令

热门文章

  1. Deepgreen DB 是什么(含Deepgreen和Greenplum下载地址)
  2. JavaScript中面向对象的三大特性(一个菜鸟的不正经日常)
  3. Android深度探索总结
  4. Postman 没有走hosts文件
  5. k8s基于canel的网络策略
  6. LeetCode1089复写零
  7. python并发编程之线程剩余内容(线程队列,线程池)及协程
  8. Windows7_64位 NVIDIA 卡 OpenCl环境配置
  9. 编译参数-ObjC的说明
  10. spring boot 启动慢的原因