//雖然DOM中沒有提供insertAfter方法政恍,但是我們可以通過insertBefore方法去完成這個方法的實現(xiàn):
function insertAfter(newElement,targetElement) {
var parent = targetElement.parentNode
if (parent.lastChild == targetElement) {
parent.appendChild(newElement)
}else{
parent.insertBefore(newElement,targetElement.nextSibling)
}
}
下面葛圃,請看看這個函數(shù)是如何一步一步地完成工作的?
(1)首先钧椰,這個函數(shù)有兩個參數(shù):一個是將被插入的新元素沽瘦,另一個是目標元素勋陪。這兩個參數(shù)通過變量newElement和targetElement被傳遞到這個函數(shù);
(2)把目標元素的parentNode屬性值保存到變量parent里募疮;
(3)接下來草讶,檢查目標元素是不是parent的最后一個子元素;
(4)如果是扁瓢,就用appendChild方法把新元素追加到parent元素上,這樣新元素就恰好被插入目標元素之后;
(5)如果不是详恼,就把新元素插入到目標元素和目標元素的下一個兄弟元素之間,目標元素的下一個兄弟元素即目標元素的nextSibling屬性引几,用insertBefore方法把新元素插入到目標元素的下一個兄弟元素之前昧互。
function addLoadEvent(func) {
var oldonload = window.onload//將現(xiàn)有的事件處理函數(shù)的值存入變量中
if (typeof window.onload !== 'function') {
window.onload = func//如果這個事件處理函數(shù)沒有綁定任何函數(shù),就把新函數(shù)添加給它
} else {
window.onload = function () {
oldonload()
func()//如果已經(jīng)綁定了函數(shù)伟桅,就把新函數(shù)追加到現(xiàn)有指令的末尾
}
}
}
function addClass(element, value) {
if (!element.className) {
element.className = value
} else {
newClassName = element.className
newClassName += " "
newClassName += value
element.className = newClassName
}
}
function moveElement(elementID, final_x, final_y, interval) {
if (!document.getElementById) {
return false
}
if (!document.getElementById(elementID)) {
return false
}
var elem = document.getElementById(elementID)
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)
if (xpos == final_x && ypos == final_y) {
return true
}
if (xpos < final_x) {
var dist = Math.ceil((final_x - xpos) / 10)
xpos += dist
}
if (xpos > final_x) {
var dist = Math.ceil((xpos - final_x) / 10)
xpos -= dist
}
if (ypos < final_y) {
var dist = Math.ceil((final_y - ypos) / 10)
ypos += dist
}
if (ypos > final_y) {
var dist = Math.ceil((ypos - final_y) / 10)
ypos -= dist
}
elem.style.left = xpos + "px"
elem.style.top = ypos + "px"
var repeat = moveElement(elementID, final_x, final_y, interval)
elem.movement = setTimeout(repeat, interval);
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者