一、动画 moveElement函数
function moveElement(elemenID,final_x,final_y,interval){
//移动元素
if(!document.getElementById)return false;
if(!document.getElementById(elemenID))return false;
var elem = document.getElementById(elemenID);
if(elem.movement){
clearTimeout(elem.movement);
}
if(!elem.style.left){
elem.style.left = "0px";
}
if(!elem.style.top){
elem.style.top = "0px";
}
var xpos = parseInt(elem.style.left);
var ypos = parseInt(elem.style.top);
var dist = 0;
if(xpos == final_x && ypos == final_y){
return true;
}
if(xpos < final_x){
//xpos++;
dist = Math.ceil((final_x - xpos)/10);
xpos = xpos + dist;
}
if(xpos > final_x){
//xpos--;
dist = Math.ceil((xpos - final_x)/10);
xpos = xpos - dist;
}
if(ypos < final_y){
//ypos++;
dist = Math.ceil((final_y - ypos)/10);
ypos = ypos + dist;
}
if(ypos > final_y){
//ypos--;
dist = Math.ceil((ypos - final_y)/10);
ypos = ypos - dist;
}
elem.style.left = xpos + "px";
elem.style.top = ypos + "px";
var repeat = "moveElement('"+elemenID+"',"+final_x+","+final_y+","+interval+")";
elem.movement = setTimeout(repeat,interval);
}
二、onload增加加载事件(addLoadEvent函数)
function addLoadEvent(func){
/*1.把window.onload事件的处理函数存入变量oldonload*/
/*2.如果window.onload没有绑定任何函数,则给它添加新的函数
*3.如果在window.onload上已经绑定了函数,就把新函数追加到末尾。
* */
var oldonload = window.onload;
if(typeof oldonload != "function"){
window.onload = func;
}else{
window.onload = function(){
oldonload();
func();
}
}
}
三、在后面添加元素(insertAfter函数)
function insertAfter(newElement,targetElement){
// 得到目标元素的父节点
var parent = targetElement.parentNode;
// 如果目标元素是 parent 最后一个就在直接添加新元素
if(parent.lastChild == targetElement){
parent.appendChild(newElement);
// 否则,就在 parent 前面的兄弟之后添加新元素
}else{
parent.insertBefore(newElement,targetElement.nextElementSibling);
}
}
四、增加新Class (addClass函数)
function addClass(element,value){
if(!element.className){
element.className=value;
}else{
var newClassName=element.className;
newClassName+=" ";
newClassName+=value;
element.className=newClassName;
}
}
五、定义命名空间函数
var GLOBAL = {};
GLOBAL.namespace=function(str){
var arr=str.split("."),o = GLOBAL;
for(i=(arr[0]=="GLOBAL")? 1:0; i<arr.length; i++){
o[arr[i]] = o[arr[i]] || {};
o = o[arr[i]];
}
};
六、得到下一个兄弟的元素节点 (getNextElement函数)
function getNextElement(node){
if(node.nodeType == 1){
return node;
}
if(node.nextSibling){
return getNextElement(node.nextSibling)
}
return null;
}
七、得到下一个兄弟节点 判断 IE 和 Firefox 的差异(getNextNode函数)
function getNextNode(node){
node = typeof node =="string" ? document.getElementById(node) : node ;
var nextNode = node.nextSibling;
if(!nextNode) return null;
if(!document.all){
while(true){
if(nextNode.nodeType == 1){
break;
}else{
if(nextNode.nextSibling){
nextNode = nextNode.nextSibling;
}else{
break;
}
}
}
}
return nextNode;
}