脚本

//虽然DOM中没有提供insertAfter方法,但是我们可以通过insertBefore方法去完成这个方法的实现:
function insertAfter(newElement,targetElement) {
  var parent = targetElement.parentNode
  if (parent.lastChild == targetElement) {
    parent.appendChild(newElement)
  }else{
    parent.insertBefore(newElement,targetElement.nextSibling)
  }
}
下面,请看看这个函数是如何一步一步地完成工作的​
(1)首先,这个函数有两个参数:一个是将被插入的新元素,另一个是目标元素。这两个参数通过变量newElement和targetElement被传递到这个函数;
(2)把目标元素的parentNode属性值保存到变量parent里;
(3)接下来,检查目标元素是不是parent的最后一个子元素;
(4)如果是,就用appendChild方法把新元素追加到parent元素上,这样新元素就恰好被插入目标元素之后;
(5)如果不是,就把新元素插入到目标元素和目标元素的下一个兄弟元素之间,目标元素的下一个兄弟元素即目标元素的nextSibling属性,用insertBefore方法把新元素插入到目标元素的下一个兄弟元素之前。
function addLoadEvent(func) {
  var oldonload = window.onload//将现有的事件处理函数的值存入变量中
  if (typeof window.onload !== 'function') {
    window.onload = func//如果这个事件处理函数没有绑定任何函数,就把新函数添加给它
  } else {
    window.onload = function () {
      oldonload()
      func()//如果已经绑定了函数,就把新函数追加到现有指令的末尾
    }
  }
}
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);
}

你可能感兴趣的:(脚本)