一个超简单的JS拖拽实现代码(兼容IE,Firefox)
runcode
/**
*取得元素的真实css属性
*@param {Object} d 元素
*@param {String} a 元素的css属性名
*@version 0.2
*/
function gs(d,a){
if (d.currentStyle){
var curVal=d.currentStyle[a]
}else{
var curVal=document.defaultView.getComputedStyle(d, null)[a]
}
return curVal;
}
/**
* 取得鼠标坐标
* @return Position
*/
function getMouseLocation(e){
if(!document.all){
mouseX = e.pageX;
mouseY = e.pageY;
}
else{
mouseX = event.x + document.body.scrollLeft;
mouseY = event.y + document.body.scrollTop;
}
return {x:mouseX,y:mouseY};
}
/**
* 拖动对象
* @param {DOM Object} DOM对象
*/
function drag(e,obj){
var p1 = getMouseLocation(e);
var startRight = null;
var startTop = null;
var startLeft = null;
var startBottom = null;
var l = gs(obj,"left");
var r = gs(obj,"right");
var t = gs(obj,"top");
var b = gs(obj,"bottom");
if(!l)
startRight = parseInt(r);
else
startLeft = parseInt(l);
if(!t)
startBottom = parseInt(b);
else
startTop = parseInt(t);
if(obj.setCapture)
obj.setCapture();
else if (window.captureEvents)
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
document.onmousemove = function(e){
var p2 = getMouseLocation(e);
var xMove = p2.x-p1.x;
var yMove = p2.y-p1.y;
if(!l)
obj.style.right = (startRight - xMove)+"px";
else
obj.style.left = (startLeft + xMove)+"px";
if(!t)
obj.style.bottom = (startBottom - yMove)+"px";
else
obj.style.top = (startTop + yMove)+"px";
}
document.onmouseup = function(){
if(obj.releaseCapture)
obj.releaseCapture();
else if (window.captureEvents)
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
document.onmouseup = null;
document.onmousemove = null;
}
}
div#test{border:solid 1px blue;background:red;position:absolute;left:100px;top:200px;width:200px;height:200px;cursor:pointer;}
拖我拖我拖我拖我拖我拖我拖我
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
javascript支持firefox,ie7页面布局拖拽效果代码
您可能感兴趣的文章:
- JS拖拽的进一步练习,移动与拉伸实现代码
- 工作需要写的一个js拖拽组件
- 关于js拖拽上传 [一个拖拽上传修改头像的流程]
- 一个js拖拽的效果类和dom-drag.js浅析
- 原生js拖拽(第一课 未兼容)拖拽思路
Tags:JS 拖拽
相关文章
- 2014-02-02javascript删除数组元素并且数组长度减小的简单实例
- 2017-03-03Bootstrap入门教程一Hello Bootstrap初识
- 2016-08-08模拟javascript中的sort排序(简单实例)
- 2016-08-08JS使用正则表达式过滤多个词语并替换为相同长度星号的方法
- 2017-02-02深入理解JavaScript中的for循环
- 2017-02-02js中创建对象的几种方式
- 2016-09-09前端弹出对话框 js实现ajax交互
- 2015-05-05javascript实时显示当天日期的方法
- 2009-06-06使弱类型的语言JavaScript变强势
- 2017-05-05bootstrap fileinput组件整合Springmvc上传图片到本地磁盘