function getStyle(obj, attr) { //获取对象的style值
return obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle(obj)[attr] //obj.currentStyle ? obj.currentStyle[attr] 判断是否 是标准浏览器
}
function move(obj, attr, dir, target, endFn) { //移动函数
clearInterval(obj.timer); //防止多次点击
dir = parseInt(getStyle(obj, attr)) < target ? dir : -dir //判断该对象的style值的 正和负
obj.timer = setInterval(function() {
var speed = parseInt(getStyle(obj, attr)) + dir; //步长
if(speed > target && dir > 0 || speed < target && dir < 0) { //方向判断
speed = target;
}
obj.style[attr] = speed + "px"; //赋值
if(speed == target) {
clearInterval(obj.timer);
if(endFn) { //回调函数
endFn();
}
}
}, 30)
}
function shake(obj, attr, endFn) { //抖动函数
var arr = [];
var num = 0;
if (!obj.onOff) {
obj.onOff = true;
for (var i = 20; i > 0; i--) {
arr.push(i, -i);
}
arr.push(0);
var pos = parseInt(getStyle(obj, attr));
obj.shakeTimer = setInterval(function () {
obj.style[attr] = pos + arr[num] + "px";
num++;
if (num == arr.length) {
clearInterval(timer);
obj.onOff = false;
if (endFn) {
endFn();
}
}
}, 30)
}
}