JavaScriptÍêÃÀÔ˶¯¿ò¼ÜµÄ½ø½×Ö®ÂÃ

µ¼Óï Ô˶¯¿ò¼ÜµÄʵÏÖ˼·Ô˶¯£¬Æäʵ¾ÍÊÇÔÚÒ»¶Îʱ¼äÄڸıäleft¡¢right¡¢width¡¢height¡¢opactiyµÄÖµ£¬µ½´ïÄ¿µÄµØÖ®ºóÍ£Ö¹¡£ÏÖÔÚ°´ÕÕÒÔϲ½ÖèÀ´½øÐÐÎÒÃǵÄÔ˶¯¿ò¼ÜµÄ·â×°:ÔÈËÙÔ˶¯¡£»º³åÔ˶¯¡£¶àÎïÌåÔ˶¯¡£ÈÎÒâÖµ±ä»¯¡£

Ô˶¯¿ò¼ÜµÄʵÏÖ˼·

 
Ô˶¯£¬Æäʵ¾ÍÊÇÔÚÒ»¶Îʱ¼äÄڸıäleft¡¢right¡¢width¡¢height¡¢opactiyµÄÖµ£¬µ½´ïÄ¿µÄµØÖ®ºóÍ£Ö¹¡£
 
ÏÖÔÚ°´ÕÕÒÔϲ½ÖèÀ´½øÐÐÎÒÃǵÄÔ˶¯¿ò¼ÜµÄ·â×°:
 
ÔÈËÙÔ˶¯¡£
 
»º³åÔ˶¯¡£
 
¶àÎïÌåÔ˶¯¡£
 
ÈÎÒâÖµ±ä»¯¡£
 
Á´Ê½Ô˶¯¡£
 
ͬʱÔ˶¯¡£
 
£¨Ò»£©ÔÈËÙÔ˶¯
 
Ëٶȶ¯»­
 
Ô˶¯»ù´¡
 
˼¿¼£ºÈçºÎÈÃdiv¶¯ÆðÀ´?
ÈçÏ£º
 
ÉèÖÃÔªËØΪ¾ø¶Ô¶¨Î»£¬Ö»Óоø¶Ô¶¨Î»ºó£¬left,topµÈÖµ²ÅÉúЧ¡£
 
¶¨Ê±Æ÷µÄʹÓ㨶¯Ì¬¸Ä±äÖµ£©£¬ÕâÀïʹÓÃsetInterval()ÿ¸ôÖ¸¶¨µÄʱ¼äÖ´ÐдúÂë¡£
 
¼ÆʱÆ÷setInterval(º¯Êý,½»»¥Ê±¼ä(ºÁÃë))£ºÔÚÖ´ÐÐʱ,´ÓÔØÈëÒ³Ãæºóÿ¸ôÖ¸¶¨µÄʱ¼äÖ´ÐдúÂë¡£
 
È¡Ïû¼ÆʱÆ÷clearInterval(º¯Êý) ·½·¨¿ÉÈ¡ÏûÓÉ setInterval() ÉèÖõĽ»»¥Ê±¼ä¡£
 
»ñÈ¡µ±Ç°µÄλÖ㬴óСµÈµÈ¡£offsetLeft£¨µ±Ç°ÔªËØÏà¶Ô¸¸ÔªËØλÖã©¡£
 
ËÙ¶È--ÎïÌåÔ˶¯µÄ¿ìÂý
 
¶¨Ê±Æ÷¼ä¸ôʱ¼ä
 
¸Ä±äÖµµÄ´óС
 
¸ù¾ÝÉÏÃæµÄÐÅÏ¢ÎÒÃǾͿÉÒÔ¿ªÊ¼·â×°Ô˶¯¿ò¼Ü´´½¨Ò»¸ö±ä»¯µÄdivÁË¡£
 
  1. /** 
  2.  * Ô˶¯¿ò¼Ü-1-¶¯ÆðÀ´ 
  3.  * @param {HTMLElement} element ½øÐÐÔ˶¯µÄ½Úµã 
  4.  */ 
  5. var timer = null
  6. function startMove(element) { 
  7.     timer = setInterval(function () {//¶¨Ê±Æ÷ 
  8.         element.style.left = element.offsetLeft + 5 + "px"
  9.     }, 30); 
Äãû¿´´í£¬¾ÍÊÇÄÇô¼òµ¥¡£µ«Êǵȵȣ¬ what£¿ Ôõô²»»áÍ££¿WTF£¿
 
ÄÇÊÇÒòΪÎÒÃÇûÓÐÔ˶¯ÖÕÖ¹Ìõ¼þ¡£ºÃÔÙ»¹ÊDZȽϼòµ¥¡£Ö±½ÓÔÚ¶¨Ê±Æ÷ÄÚ²¿£¬Åжϵ½´ïÄ¿±êÖµ£¬Çå³ý¶¨Ê±Æ÷¾ÍÐÐÀ­£¡
 
  1. /** 
  2.  * Ô˶¯¿ò¼Ü-2-Ô˶¯ÖÕÖ¹ 
  3.  * @param {HTMLElement} element ½øÐÐÔ˶¯µÄ½Úµã 
  4.  * @param {number}      iTarget Ô˶¯ÖÕÖ¹Ìõ¼þ¡£ 
  5.  */ 
  6.  var timer = null
  7. function startMove(element, iTarget) { 
  8.     timer = setInterval(function () { 
  9.         element.style.left = element.offsetLeft + 5 + "px"
  10.         if (element.offsetLeft === iTarget) {//Í£Ö¹Ìõ¼þ 
  11.             clearInterval(timer); 
  12.         } 
  13.     }, 30); 
¾ÍÕâÑùÊDz»ÊǾÍÍê³ÉÁËÄØ£¿ÒѾ­okÁËÄØ£¿ 
no¡£»¹ÓÐһЩBugÐèÒª´¦Àí¡£
 
Ô˶¯ÖеÄBug
 
ËÙ¶ÈÈ¡µ½Ä³Ð©Öµ»áÎÞ·¨Í£Ö¹
 
µ½´ïλÖúóÔÙµã»÷»¹»áÔ˶¯
 
Öظ´µã»÷Ëٶȼӿì
 
ËÙ¶ÈÎÞ·¨¸ü¸Ä
 
½â¾öBUG
 
ËÙ¶ÈÈ¡µ½Ä³Ð©Öµ»áÎÞ·¨Í£Ö¹£¨Õâ¸öBugÉÔºó½â¾ö£¬ÔÚ½ø»¯¹ý³ÌÖÐ×ÔÈ»½â¾ö£©
 
°ÑÔ˶¯ºÍÍ£Ö¹¸ô¿ª(if/else)
 
ÔÚ¿ªÊ¼Ô˶¯Ê±,¹Ø±ÕÒÑÓж¨Ê±Æ÷
 
°ÑËÙ¶ÈÓñäÁ¿±£´æ
 
  1. /** 
  2.  * Ô˶¯¿ò¼Ü-3-½â¾öBug 
  3.  */ 
  4. var timer = null
  5. function startMove(element, iTarget) { 
  6.     clearInterval(timer);//ÔÚ¿ªÊ¼Ô˶¯Ê±,¹Ø±ÕÒÑÓж¨Ê±Æ÷ 
  7.     timer = setInterval(function () { 
  8.         var iSpeed = 5;//°ÑËÙ¶ÈÓñäÁ¿±£´æ 
  9.         //°ÑÔ˶¯ºÍÍ£Ö¹¸ô¿ª(if/else) 
  10.         if (element.offsetLeft === iTarget) {//½áÊøÔ˶¯ 
  11.             clearInterval(timer); 
  12.         } else { 
  13.             element.style.left = element.offsetLeft + iSpeed + "px"
  14.         } 
  15.     }, 30); 

 

ÕâÑùÒ»¸ö¼òµ¥µÄÔ˶¯¿ò¼Ü¾ÍÍê³ÉÁË¡£µ«ÊÇ£¬Ôٵȵȡ£Ö»ÄÜÏòÓÒ×ߣ¿±ð¼±£¬ÎÒÃDz»ÊǶ¨ÒåÁË°ÑËٶȱä³ÉΪÁ˱äÁ¿Âð£¿Ö»ÐèÒª¶ÔËü½øÐÐһЩ´¦Àí¾ÍÐÐÀ²£¡
var iSpeed = 5;
 
  1. //ÅжϾàÀëÄ¿±êλÖ㬴ﵽ×Ô¶¯±ä»¯ËÙ¶ÈÕý¸º 
  2. var iSpeed = 0; 
  3. if (element.offsetLeft < iTarget) { 
  4.     iSpeed = 5; 
  5. else { 
  6.     iSpeed = -5; 
͸Ã÷¶È¶¯»­
 
ÓñäÁ¿alpha´¢´æµ±Ç°Í¸Ã÷¶È¡£
 
°ÑÉÏÃæµÄelement.offsetLeft¸Ä³É±äÁ¿alpha¡£
 
Ô˶¯ºÍÍ£Ö¹Ìõ¼þ²¿·Ö½øÐиü¸Ä¡£ÈçÏ£º
 
  1. //͸Ã÷¶Èä¯ÀÀÆ÷¼æÈÝʵÏÖ 
  2. if (alpha === iTarget) { 
  3.     clearInterval(time); 
  4. else { 
  5.     alpha += speed; 
  6.     element.style.filter = 'alpha(opacity:' + alpha + ')'//¼æÈÝIE 
  7.     element.style.opacity = alpha / 100;//±ê×¼ 

£¨¶þ£©»º³å¶¯»­

˼¿¼£ºÔõôÑù²ÅÊÇ»º³å¶¯»­£¿
 
Ó¦¸ÃÓÐÒÔϼ¸µã£º
 
Öð½¥±äÂý,×îºóÍ£Ö¹
 
¾àÀëÔ½Ô¶ËÙ¶ÈÔ½´ó
 
ËÙ¶ÈÓɾàÀë¾ö¶¨
 
ËÙ¶È=(Ä¿±êÖµ-µ±Ç°Öµ)/Ëõ·ÅϵÊý
 
Bug :ËÙ¶ÈÈ¡Õû(ʹÓÃMath·½·¨)£¬²»È»»áÉÁ
 
ÏòÉÏÈ¡Õû¡£Math.ceil(iSpeed)
 
ÏòÏÂÈ¡Õû¡£Math.floor(iSpeed)
 
»¹ÊǶÔËÙ¶È×÷ÎÄÕ£º
 
  1. /** 
  2.  * Ô˶¯¿ò¼Ü-4-»º³å¶¯»­ 
  3.  */ 
  4. function startMove(element, iTarget) { 
  5.     clearInterval(timer); 
  6.     timer = setInterval(function () { 
  7.     //ÒòΪËÙ¶ÈÒª¶¯Ì¬¸Ä±ä£¬ËùÒÔ±ØÐë·ÅÔÚ¶¨Ê±Æ÷ÖР
  8.         var iSpeed = (iTarget - element.offsetLeft) / 10; //(Ä¿±êÖµ-µ±Ç°Öµ)/Ëõ·ÅϵÊý=ËٶȠ
  9.         iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed); //ËÙ¶ÈÈ¡Õû 
  10.         if (element.offsetLeft === iTarget) {//½áÊøÔ˶¯ 
  11.             clearInterval(timer); 
  12.         } else { 
  13.             element.style.left = element.offsetLeft + iSpeed + "px"
  14.         } 
  15.     }, 30); 
×öµ½ÕâÀ£¨ËÙ¶ÈÈ¡µ½Ä³Ð©Öµ»áÎÞ·¨Í£Ö¹)Õâ¸öBug¾Í×Ô¶¯½â¾öÀ²£¡
 
Àý×Ó:»º³å²Ëµ¥
 
¸úËæÒ³Ãæ¹ö¶¯µÄ»º³å²à±ßÀ¸
ÔÚÏßÑÝʾ£ºcodepen
 
DZÔÚÎÊÌâÄ¿±êÖµ²»ÊÇÕûÊýʱ

£¨Èý£©¶àÎïÌåÔ˶¯

˼¿¼£ºÈçºÎʵÏÖ¶àÎïÌåÔ˶¯£¿
 
µ¥¶¨Ê±Æ÷£¬´æÔÚÎÊÌ⡣ÿ¸ödivÒ»¸ö¶¨Ê±Æ÷
 
¶¨Ê±Æ÷×÷Ϊ¶ÔÏóµÄÊôÐÔ
 
Ö±½ÓʹÓÃelement.timer°Ñ¶¨Ê±Æ÷±ä³É¶ÔÏóÉϵÄÒ»¸öÊôÐÔ¡£
 
²ÎÊýµÄ´«µÝ:ÎïÌå/Ä¿±êÖµ
±È½Ï¼òµ¥°ÑÉÏÃæ¿ò¼ÜµÄ½øÐÐÈçϸü¸Ä£ºtimer-->element.timer
 
¾ÍÕâÑù¾ÍÐÐÀ²£¡

£¨ËÄ£©ÈÎÒâÖµ±ä»¯

¿È¿È¡£ÎÒÃÇÀ´¸ødiv¼Ó¸ö1pxµÄ±ß¿ò¡£boder :1px solid #000
 
È»ºóÀ´ÊÔÊÔÏÂÃæµÄ´úÂë
 
  1. setInterval(function () { 
  2.     oDiv.style.width = oDiv.offsetWidth - 1 + "px"
  3. }, 30) 
àÅ£¬ÉñÆæµÄÊÂÇé·¢ÉúÁË£¡what£¿ÎÒÉèÖõIJ»ÊÇ¿í¶ÈÔÚ¼õÂð£¿ÔõôÄáÂêÔö¼ÓÁË£¡ ²»¶Ô°¡£¬´óÐֵܡ£
 
¾¿¾¹ÄÄÀï³öÁËÎÊÌâÄØ£¿
 
Ò»ÆðÕÒÕÒ×ÊÁÏ£¬¿´¿´Îĵµ£¬Ô­À´offsetÕâһϵÁеÄÊôÐÔ¶¼»á´æÔÚ£¬±»ÆäËûÊôÐÔ¸ÉÈŵÄÎÊÌâ¡£
 
ºÃ°É£¬¼ÈÈ»²»ÄÜÓã¬ÄÇôÎÒÃǾÍ˳±ã°ÑÈÎÒâÖµ±ä»¯¸ø×öÁË°É¡£
 
µÚÒ»²½£º»ñȡʵ¼ÊÑùʽ
 
ʹÓÃoffsetLeft..µÈ»ñÈ¡Ñùʽʱ, ÈôÉèÖÃÁ˱߿ò, padding, µÈ¿ÉÒԸıäÔªËØ¿í¶È¸ß¶ÈµÄÊôÐÔʱ»á³öÏÖBUG..
 
ͨ¹ý²éÕÒ·¢ÏÖelement.currentStyle(attr)¿ÉÒÔ»ñÈ¡¼ÆËã¹ýÖ®ºóµÄÊôÐÔ¡£
 
µ«ÊÇÒòΪ¼æÈÝÐÔµÄÎÊÌ⣬Ðè·â×°getStyleº¯Êý¡££¨Íò¶ñµÄIE£©
 
µ±È»ÅäºÏCSSµÄbox-sizingÊôÐÔÉèΪborder-box¿ÉÒÔ´ïµ½Ò»ÑùµÄЧ¹û ? (×ÔÈÏΪ£¬Î´ÑéÖ¤)¡£
 
  1. /** 
  2.  * »ñȡʵ¼ÊÑùʽº¯Êý 
  3.  * @param   {HTMLElement}   element  ÐèҪѰÕÒµÄÑùʽµÄhtml½Úµã 
  4.  * @param   {String]} attr ÔÚ¶ÔÏóÖÐÑ°ÕÒµÄÑùʽÊôÐÔ 
  5.  * @returns {String} »ñÈ¡µ½µÄÊôÐÔ 
  6.  */ 
  7. function getStyle(element, attr) { 
  8.     //IEд·¨ 
  9.     if (element.currentStyle) { 
  10.         return element.currentStyle[attr]; 
  11.     //±ê×¼ 
  12.     } else { 
  13.         return getComputedStyle(element, false)[attr]; 
  14.     } 
µÚ¶þ²½£º¸ÄÔìÔ­º¯Êý
 
Ìí¼Ó²ÎÊý£¬attr±íʾÐèÒª¸Ä±äµÄÊôÐÔÖµ¡£
 
¸ü¸Äelement.offsetLeftΪgetStyle(element, attr)¡£
 
ÐèҪעÒâµÄÊÇ£ºgetStyle(element, attr)²»ÄÜÖ±½ÓʹÓã¬ÒòΪËü»ñÈ¡µ½µÄ×Ö·û´®,Àý£º10px¡£
 
±äÁ¿iCurrentʹÓÃparseInt(),½«Ñùʽת³ÉÊý×Ö¡£
 
element.style.leftΪelement.style[attr]¡£
 
  1. /** 
  2.  * Ô˶¯¿ò¼Ü-4-ÈÎÒâÖµ±ä»¯ 
  3.  * @param {HTMLElement} element Ô˶¯¶ÔÏó 
  4.  * @param {string}      attr    ÐèÒª¸Ä±äµÄÊôÐÔ¡£ 
  5.  * @param {number}      iTarget Ä¿±êÖµ 
  6.  */ 
  7. function startMove(element, attr, iTarget) { 
  8.     clearInterval(element.timer); 
  9.     element.timer = setInterval(function () { 
  10.         //ÒòΪËÙ¶ÈÒª¶¯Ì¬¸Ä±ä£¬ËùÒÔ±ØÐë·ÅÔÚ¶¨Ê±Æ÷ÖР
  11.     var iCurrent=0; 
  12.     iCurrent = parseInt(getStyle(element, attr));//ʵ¼ÊÑùʽ´óС 
  13.         var iSpeed = (iTarget - iCurrent) / 10; //(Ä¿±êÖµ-µ±Ç°Öµ)/Ëõ·ÅϵÊý=ËٶȠ
  14.         iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed); //ËÙ¶ÈÈ¡Õû 
  15.         if (iCurrent === iTarget) {//½áÊøÔ˶¯ 
  16.             clearInterval(element.timer); 
  17.         } else { 
  18.             element.style[attr] = iCurrent + iSpeed + "px"
  19.         } 
  20.     }, 30); 
ÊÔÒ»ÊÔ£¬ÕâÑùÊDz»ÊǾͿÉÒÔÁËÄØ£¿
 
»¹¼ÇµÃÉÏÃæÎÒÃÇдµÄ͸Ã÷¶È±ä»¯Âð? ÔÙÊÔÊÔ
 
¹ûÈ»»¹ÊDz»ÐУ¬ £¨·Ï»°£¬Äã¼û¹ý͸Ã÷¶ÈÓÐ"px"µ¥Î»µÄô? - -°×ÑÛ £©
 
µÚÈý²½£ºÍ¸Ã÷¶È¼æÈÝ´¦Àí
 
˼¿¼£ºÐèÒª¶ÔÄÇЩÊôÐÔ½øÐÐÐ޸ģ¿
 
ÅжÏattrÊDz»ÊÇ͸Ã÷¶ÈÊôÐÔopacity ¡£
 
¶ÔÓÚËٶȽøÐд¦Àí¡£
 
Ϊ͸Ã÷¶Èʱ£¬ÓÉÓÚ»ñÈ¡µ½µÄ͸Ã÷¶È»áÊÇСÊý£¬ËùÒÔÐèÒª * 100
 
²¢ÇÒÓÉÓÚ¼ÆËã»ú´¢´æ¸¡µãÊýµÄÎÊÌ⣬»¹ÐèÒª½«Ð¡Êý£¬½øÐÐËÄÉáÎåÈëΪÕûÊý¡£Ê¹ÓãºMath.round(parseFloat(getStyle(element, attr)) * 100)¡£
 
·ñÔò£¬¼ÌÐøʹÓÃĬÈϵÄËٶȡ£
 
¶Ô½á¹ûÊä³ö²¿·Ö½øÐиü¸Ä¡£
 
ÅжÏÊÇ͸Ã÷¶ÈÊôÐÔ£¬Ê¹ÓÃ͸Ã÷¶È·½·¨
 
·ñÔò£¬Ê¹ÓÃʹÓÃĬÈϵÄÊä³ö¸ñʽ¡£
 
  1. /** 
  2.  * Ô˶¯¿ò¼Ü-5-¼æÈÝ͸Ã÷¶È 
  3.  * @param {HTMLElement} element Ô˶¯¶ÔÏó 
  4.  * @param {string}      attr    ÐèÒª¸Ä±äµÄÊôÐÔ¡£ 
  5.  * @param {number}      iTarget Ä¿±êÖµ 
  6.  */ 
  7. function startMove(element, attr, iTarget) { 
  8.     clearInterval(element.timer); 
  9.     element.timer = setInterval(function () { 
  10.         //ÒòΪËÙ¶ÈÒª¶¯Ì¬¸Ä±ä£¬ËùÒÔ±ØÐë·ÅÔÚ¶¨Ê±Æ÷ÖР
  11.         var iCurrent = 0; 
  12.         if (attr === "opacity") { //Ϊ͸Ã÷¶ÈʱִÐС£ 
  13.             iCurrent = Math.round(parseFloat(getStyle(element, attr)) * 100); 
  14.         } else { //ĬÈÏÇé¿ö 
  15.             iCurrent = parseInt(getStyle(element, attr)); //ʵ¼ÊÑùʽ´óС 
  16.         } 
  17.         var iSpeed = (iTarget - iCurrent) / 10; //(Ä¿±êÖµ-µ±Ç°Öµ)/Ëõ·ÅϵÊý=ËٶȠ
  18.         iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed); //ËÙ¶ÈÈ¡Õû 
  19.         if (iCurrent === iTarget) {//½áÊøÔ˶¯ 
  20.             clearInterval(element.timer); 
  21.         } else { 
  22.             if (attr === "opacity") { //Ϊ͸Ã÷¶Èʱ£¬Ö´ÐР
  23.                 element.style.filter = "alpha(opacity:" + (iCurrent + iSpeed) + ")"//IE 
  24.                 element.style.opacity = (iCurrent + iSpeed) / 100; //±ê×¼ 
  25.             } else { //ĬÈÏ 
  26.                 element.style[attr] = iCurrent + iSpeed + "px"
  27.             } 
  28.         } 
  29.     }, 30); 

 

µ½ÕâÀÕâ¸öÔ˶¯¿ò¼Ü¾Í»ù±¾ÉÏÍê³ÉÁË¡£µ«ÊÇ£¬ÎÒÃÇÊÇ×·ÇóÍêÃÀµÄ²»ÊÇÂð£¿

¼ÌÐø½ø»¯£¡

£¨Î壩Á´Ê½¶¯»­

Á´Ê½¶¯»­£º¹ËÃû˼Ò壬¾ÍÊÇÔڸôÎÔ˶¯Í£Ö¹Ê±£¬¿ªÊ¼ÏÂÒ»´ÎÔ˶¯¡£
 
ÈçºÎʵÏÖÄØ£¿
 
ʹÓûص÷º¯Êý£ºÔ˶¯Í£Ö¹Ê±,Ö´Ðк¯Êý
 
Ìí¼ÓfuncÐβΣ¨»Øµ÷º¯Êý£©¡£
 
ÔÚµ±Ç°ÊôÐÔµ½´ïÄ¿µÄµØʱiCurrent === iTarget£¬ÅжÏÊÇ·ñÓлص÷º¯Êý´æÔÚ£¬ÓÐÔòÖ´ÐС£
 
if (iCurrent === iTarget) {//½áÊøÔ˶¯
    clearInterval(element.timer);
    if (func) {
        func();//»Øµ÷º¯Êý
    }
}
good£¬Á´Ê½¶¯»­Íê³É£¡¾àÀëÍêÃÀ»¹²îÒ»²½£¡

£¨Áù£©Í¬Ê±Ô˶¯

˼¿¼£ºÈçºÎʵÏÖͬʱÔ˶¯£¿
 
ʹÓÃJSON´«µÝ¶à¸öÖµ
 
ʹÓÃfor inÑ­»·£¬±éÀúÊôÐÔ£¬ÓëÖµ¡£
 
¶¨Ê±Æ÷ÎÊÌâ!(Ô˶¯ÌáÇ°Í£Ö¹)
 
ÔÚÑ­»·ÍâÉèÖñäÁ¿,¼ÙÉèËùÓеÄÖµ¶¼µ½´ïÁËÄ¿µÄֵΪtrue
 
ÔÚÑ­»·Öмì²âÊÇ·ñµ½´ïÄ¿±êÖµ,ÈôûÓÐֵδµ½ÔòΪfalse
 
ÔÚÑ­»·½áÊøºó,¼ì²âÊÇ·ñÈ«²¿´ïµ½Ä¿±êÖµ.ÊÇÔòÇå³ý¶¨Ê±Æ÷
 
ʵÏÖ£º
 
ɾ³ýattrÓëiTargetÁ½¸öÐβΣ¬¸ÄΪjson
 
ÔÚº¯Êý¿ªÊ¼Ê±£¬ÉèÖÃÒ»¸ö±ê¼Çvar flag = true; //¼ÙÉèËùÓÐÔ˶¯µ½´ïÖÕµã.
 
ÔÚ¶¨Ê±Æ÷ÄÚʹÓÃfor in£¬±éÀúÊôÐÔÓëÄ¿±ê£¬¸ÄдԭÀ´µÄattrÓëiTarget£¬ÎªjsonµÄÊôÐÔÓëÖµ
 
ÐÞ¸ÄÔ˶¯ÖÕÖ¹Ìõ¼þ£¬Ö»ÓÐÿһÏîµÄʵ¼ÊÊôÐÔÖµiCurrent£¬µÈÓÚÄ¿±êÖµjson[attr]ʱ£¬flag²ÅΪtrue¡£Çå³ý¶¨Ê±Æ÷£¬ÅжÏÊÇ·ñ»Øµ÷¡£
 
·ñÔò£¬¼ÌÐøÖ´ÐдúÂ룬ֱµ½ËùÓÐÊôÐÔÖµµÈÓÚÄ¿±êÖµ¡£
 
ÍêÃÀÔ˶¯¿ò¼Ü
 
  1. /** 
  2.  * »ñȡʵ¼ÊÑùʽº¯Êý 
  3.  * @param   {HTMLElement}   element  ÐèҪѰÕÒµÄÑùʽµÄhtml½Úµã 
  4.  * @param   {String]} attr ÔÚ¶ÔÏóÖÐÑ°ÕÒµÄÑùʽÊôÐÔ 
  5.  * @returns {String} »ñÈ¡µ½µÄÊôÐÔ 
  6.  */ 
  7. function getStyle(element, attr) { 
  8.     //IEд·¨ 
  9.     if (element.currentStyle) { 
  10.         return element.currentStyle[attr]; 
  11.         //±ê×¼ 
  12.     } else { 
  13.         return getComputedStyle(element, false)[attr]; 
  14.     } 
  15. /** 
  16.  * ÍêÃÀÔ˶¯¿ò¼Ü 
  17.  * @param {HTMLElement} element Ô˶¯¶ÔÏó 
  18.  * @param {JSON}        json    ÊôÐÔ£ºÄ¿±êÖµ       
  19.  *   @property {String} attr    ÊôÐÔÖµ 
  20.  *   @config   {Number} target  Ä¿±êÖµ 
  21.  * @param {function}    func    ¿ÉÑ¡£¬»Øµ÷º¯Êý£¬Á´Ê½¶¯»­¡£ 
  22.  */ 
  23. function startMove(element, json, func) { 
  24.     var flag = true//¼ÙÉèËùÓÐÔ˶¯µ½´ïÖÕµã. 
  25.     clearInterval(element.timer); 
  26.     element.timer = setInterval(function () { 
  27.         for (var attr in json) { 
  28.             //1.È¡µ±Ç°µÄÊôÐÔÖµ¡£ 
  29.             var iCurrent = 0; 
  30.             if (attr === "opacity") { //Ϊ͸Ã÷¶ÈʱִÐС£ 
  31.                 iCurrent = Math.round(parseFloat(getStyle(element, attr)) * 100); 
  32.             } else { //ĬÈÏÇé¿ö 
  33.                 iCurrent = parseInt(getStyle(element, attr)); //ʵ¼ÊÑùʽ´óС 
  34.             } 
  35.             //2.ËãÔ˶¯ËÙ¶È,¶¯»­»º³åЧ¹û 
  36.             var iSpeed = (json[attr] - iCurrent) / 10; //(Ä¿±êÖµ-µ±Ç°Öµ)/Ëõ·ÅϵÊý=ËٶȠ
  37.             iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed); //ËÙ¶ÈÈ¡Õû 
  38.  
  39.             //3.δµ½´ïÄ¿±êֵʱ£¬Ö´ÐдúÂë  
  40.             if (iCurrent != json[attr]) { 
  41.                 flag = false//ÖÕÖ¹Ìõ¼þ 
  42.                 if (attr === "opacity") { //Ϊ͸Ã÷¶Èʱ£¬Ö´ÐР
  43.                     element.style.filter = "alpha(opacity:" + (iCurrent + iSpeed) + ")"//IE 
  44.                     element.style.opacity = (iCurrent + iSpeed) / 100; //±ê×¼ 
  45.                 } else { //ĬÈÏ 
  46.                     element.style[attr] = iCurrent + iSpeed + "px"
  47.                 } 
  48.             } else { 
  49.                 flag = true
  50.             } 
  51.             //4. Ô˶¯ÖÕÖ¹£¬ÊÇ·ñ»Øµ÷ 
  52.             if (flag) { 
  53.                 clearInterval(element.timer); 
  54.                 if (func) { 
  55.                     func(); 
  56.                 } 
  57.             } 
  58.         } 
  59.     }, 30); 
Ô˶¯¿ò¼Ü×ܽá
 
Ô˶¯¿ò¼ÜÑݱä¹ý³Ì
 
¿ò¼Ü                                      ±ä»¯
startMove(element)                        Ô˶¯
startMove(element,iTarget)                ÔÈËÙ-->»º³å-->¶àÎïÌå
startMove(element,attr,iTargrt)           ÈÎÒâÖµ
startMove(element,attr,iTargrt,func)      Á´Ê½Ô˶¯
startMove(element,json,func)              ¶àÖµ(ͬʱ)-->ÍêÃÀÔ˶¯¿ò¼Ü
 
http://www.aseoe.com/ true JavaScriptÍêÃÀÔ˶¯¿ò¼ÜµÄ½ø½×Ö®Âà http://www.aseoe.com/show-12-729-1.html report <£¿php echo strlen($content) / 2; ?> Ô˶¯¿ò¼ÜµÄʵÏÖ˼·Ô˶¯£¬Æäʵ¾ÍÊÇÔÚÒ»¶Îʱ¼äÄڸıäleft¡¢right¡¢width¡¢height¡¢opactiyµÄÖµ£¬µ½´ïÄ¿µÄµØÖ®ºóÍ£Ö¹¡£ÏÖÔÚ°´ÕÕÒÔϲ½ÖèÀ´½øÐÐÎÒÃǵÄÔ˶¯¿ò¼ÜµÄ·â×°:ÔÈËÙÔ˶¯¡£»º³åÔ˶¯¡£¶àÎïÌåÔ˶¯¡£ÈÎÒâÖµ±ä»¯¡£
TAG:JavaScript
±¾Õ¾»¶Ó­ÈκÎÐÎʽµÄתÔØ£¬µ«ÇëÎñ±Ø×¢Ã÷³ö´¦£¬×ðÖØËûÈËÀͶ¯³É¹û
תÔØÇë×¢Ã÷£º ÎÄÕÂתÔØ×Ô£º°®Ë¼×ÊÔ´Íø http://www.aseoe.com/show-12-729-1.html

[Ç°¶Ë²å¼þÍƼö] Plugin

1 2 3 4
  • jQueryʵÏÖÖð×ÖÖð¾äÏÔʾ²å¼þl-by-l.min.js
  • jQuery´ø·½Ïò¸ÐÖªµÄÊó±ê»¬¹ýͼƬ±ß¿òÌØЧ²å¼þ
  • jQuery HotKeys¼àÌý¼üÅÌ°´ÏÂʼþkeydown²å¼þ
  • ÏìӦʽÎÞÏÞÂÖ²¥jQueryÐýתľÂí²å¼þ
ÏìӦʽÎÞÏÞÂÖ²¥jQueryÐýתľÂí²å¼þ
webÇ°¶Ë¿ª·¢
°®Ë¼×ÊÔ´Íø Copyright 2012-2014 Www.Aseoe.Com All rights reserved.(½úICP±¸13001436ºÅ-1)