专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Javascript教程 » iefirefox兼容性:IE/FireFox具备兼容性的拖动代码 »正文

iefirefox兼容性:IE/FireFox具备兼容性的拖动代码

来源: 发布时间:星期六, 2008年12月27日 浏览:18次 评论:0
特点:
1、兼容 IE6、FF、Opear(IE7还没有机会测试)
2、拖动流畅
3、起点和终点的间有过渡使移动更平滑(可调)
演示
/*
Author:misshjn
HomePage:http://www.happyshow.org
Date:2007-04-30
拖动开始
*/
function _getStyle(element,styleProp){
(element.currentStyle){
var y = element.currentStyle[styleProp];
} (window.getComputedStyle){
var y = document.defaultView.getComputedStyle(element,null).getPropertyValue(styleProp.replace(/([A-Z])/g,"-$1").toLowerCase);
}
y;
}
function _elementOnmouseDown(evt,blockID){
var obj, temp;
obj=document.getElementById(blockID);
var x = evt.clientX || evt.pageX;
var y = evt.clientY || evt.pageY;
obj.startX=x-obj.offLeft;
obj.startY=y-obj.offTop;
var d = document.createElement("div");
d.style.position = "absolute";
d.style.width = obj.clientWidth + parseInt(_getStyle(obj,"borderLeftWidth"),10) + parseInt(_getStyle(obj,"borderRightWidth")) -2 + "px";
d.style.height = obj.clientHeight + parseInt(_getStyle(obj,"borderTopWidth"),10) + parseInt(_getStyle(obj,"borderBottomWidth")) -2 + "px";
d.style.border = "1px dashed #666";
d.style.top = _getStyle(obj,"top");
d.style.left = _getStyle(obj,"left");
d.style.zIndex = "9999";
document.body.appendChild(d);
document.onmousemove=function(evt){
d.style.left= (evt?evt.pageX:event.clientX) - obj.startX + "px";
d.style.top= (evt?evt.pageY:event.clientY) - obj.startY + "px";
};
document.onmouseup=function{
var objL = parseInt(_getStyle(obj,"left"),10);
var objT = parseInt(_getStyle(obj,"top"),10);
var obj2L = parseInt(d.style.left,10);
var obj2T = parseInt(d.style.top,10);
var todolist = ;
var level = 10; //元素移动从起点到终点的间过渡级数,大于0整数
var speed = 10; //毫秒每次移动间隔时间数字越大动画感越强但跳跃感也越大
for (i=1; i<=level; i){
todolist.push(function(t){
Timeout(function{
obj.style.left = objL + (obj2L-objL)*(t/level) + "px";
obj.style.top = objT + (obj2T-objT)*(t/level) + "px";
(ti)todolist=null;
},speed*arguments[0]);
});
}
for (i=1; i<=level; i){
todolist[i-1](i);
}
document.body.removeChild(d);
document.onmousemove = null;
document.onmouseup = null;
};
}
/*
拖动结束
*/
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: