29 function shake ( obj, attr, endFn ) { 30 var pos = parseInt( getStyle(obj, attr) ); 31 var arr = []; // 20, -20, 18, -18 ..... 0 32 var num = 0;34 35 for ( var i=20; i>0; i-=2 ) { 36 arr.push( i, -i ); 37 } 38 arr.push(0); 39 40 clearInterval( obj.shake ); 41 obj.shake = setInterval(function (){ 42 obj.style[attr] = pos + arr[num] + 'px'; 43 num++; 44 if ( num === arr.length ) { 45 clearInterval( obj.shake ); 46 endFn && endFn(); 47 } 48 }, 50); 49 }