<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_JayChow</title><subtitle type="text">var JayChow={MyMotto: "人生惟读书与做事尔，又何必贪恋太多。", MyTarget: "恍若女人般的优雅code，恍若女人般的用户体验。"}</subtitle><id>http://feed.cnblogs.com/blog/u/67146/rss</id><updated>2011-01-24T14:53:07Z</updated><author><name>JayChow</name><uri>http://www.cnblogs.com/ljchow/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ljchow/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/67146/rss"/><entry><id>http://www.cnblogs.com/ljchow/archive/2011/01/24/1943579.html</id><title type="text">郁闷，郁闷</title><summary type="text">这几个月忙于工作，博客疏写了，罪过罪过。一定速速补上，补上。谴责下自己。</summary><published>2011-01-24T14:53:00Z</published><updated>2011-01-24T14:53:00Z</updated><author><name>JayChow</name><uri>http://www.cnblogs.com/ljchow/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ljchow/archive/2011/01/24/1943579.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ljchow/archive/2011/01/24/1943579.html"/><content type="html">&lt;p&gt;这几个月忙于工作，博客疏写了，罪过罪过。一定速速补上，补上。&lt;/p&gt;&lt;p&gt;谴责下自己。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/ljchow/aggbug/1943579.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/ljchow/archive/2011/01/24/1943579.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/ljchow/archive/2010/09/10/1822799.html</id><title type="text">Js组件的一些写法（一）</title><summary type="text">今天看了rank的一篇javascript脚本控件topic，突然想总结一下一些写JS组件的方法，或者说一些不同人的不同coding style。首先看下Prototype里的写法：[代码]如果你不喜欢上面这一大堆Class.create之类的，你也可以这样：[代码]当然，也可以把this.msg的初始化放到function A(msg){this.msg=msg;}里。总之你会发现这...</summary><published>2010-09-09T16:08:00Z</published><updated>2010-09-09T16:08:00Z</updated><author><name>JayChow</name><uri>http://www.cnblogs.com/ljchow/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ljchow/archive/2010/09/10/1822799.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ljchow/archive/2010/09/10/1822799.html"/><content type="html">&lt;p&gt;今天看了rank的一篇&lt;a href="http://www.never-online.net/blog/article.asp?id=298" target="_blank"&gt;javascript脚本控件topic&lt;/a&gt;，突然想总结一下一些写JS组件的方法，或者说一些不同人的不同coding style。&lt;/p&gt;&lt;p&gt;首先看下Prototype里的写法：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; Class &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br /&gt;        create: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;() {&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;() { &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.init.apply(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;, arguments); }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; A &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Class.create();&lt;br /&gt;    A.prototype &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br /&gt;        init: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(msg) {&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.msg &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; msg;&lt;br /&gt;        },&lt;br /&gt;        fn: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;() {&lt;br /&gt;            alert(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.msg);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; a &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; A(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;myMsg&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;    a.fn();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;如果你不喜欢上面这一大堆Class.create之类的，你也可以这样：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; A() { } &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;var A = function(){}&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;    A.prototype &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br /&gt;        init: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(msg) {&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.msg &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; msg;&lt;br /&gt;        },&lt;br /&gt;        fn: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;() {&lt;br /&gt;            alert(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.msg);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; a &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; A();&lt;br /&gt;    a.init(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;myMsg&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;    a.fn();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;当然，也可以把this.msg的初始化放到function A(msg){this.msg=msg;}里。总之你会发现这样调用很麻烦，并且参数是固定对应好的。&lt;/p&gt;&lt;p&gt;你如果既不愿搞一大堆Class.create，也不愿调用不方便，那就把Prototype里的var Class = {...} 和 var A = Class.create();合并起来。得到：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; A() {&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.init.apply(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;, arguments);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    A.prototype &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br /&gt;        init: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(msg) {&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.msg &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; msg;&lt;br /&gt;        },&lt;br /&gt;        fn: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;() {&lt;br /&gt;            alert(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.msg);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; a &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; A(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;myMsg&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;    a.fn();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;看上去干净了许多，但是如果你的库里有很多组件，则每个组件都要写一遍this.init.apply(this, arguments); 如果用Class.create的话，则只要写一个Class，然后每个组件执行下Class.create()即可。当然，每个组件都写一遍this.init.apply(this, arguments);也没啥不好的，还是看个人喜好了。另外写原型方法是合在一起还是分开来写也是个人喜好，出于封装的角度，合一起好，但是分开有时候显的更清晰。譬如A.prototype.init=function(msg){...} A.prototype.fn=function(){...}&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;然后还有人喜欢这样去写组件：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; A &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(msg) {&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.msg &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; msg;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; _this &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; privateFn1 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;() {&lt;br /&gt;            alert(_this.msg);&lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; privateFn2 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;() {&lt;br /&gt;            alert(_this.msg);&lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; { fn1: privateFn1, fn2: privateFn2 };&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; a &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; A(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;myMsg&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;    a.fn1();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;这边一定要把A构造的对象this放到临时变量_this中哦，因为运行时，privateFn1的函数体内this实际是{fn1:...,fn2:...}这样的匿名对象，你可以用this.hasOwnProperty("fn1")去测试。this是在运行时才有意义的一个东西。另外这种方法每个对象都会有privateFn1 和 privateFn2的副本，这种方法不太好。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;（未完待续，下面会讲些不同框架的一些写法）&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/ljchow/aggbug/1822799.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/ljchow/archive/2010/09/10/1822799.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/ljchow/archive/2010/08/31/1814094.html</id><title type="text">腾讯的一个不固定高度消息的滚动特效</title><summary type="text">8月最后1天，赶紧补篇博客。贴个最近看到的腾讯的特效，写的还可以。先看效果。&lt;div&gt; &lt;table width="320" cellpadding="0" cellspacing="0" align="left" style="border-collapse:collapse;border:1px solid black;"&gt; &lt;tr&gt; &lt;td val...</summary><published>2010-08-31T14:44:00Z</published><updated>2010-08-31T14:44:00Z</updated><author><name>JayChow</name><uri>http://www.cnblogs.com/ljchow/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ljchow/archive/2010/08/31/1814094.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ljchow/archive/2010/08/31/1814094.html"/><content type="html">&lt;script language="javascript"&gt;// &lt;![CDATA[        function runCode(id) {            var code = document.getElementById(id).value;            if (code != "") {                var newwin = window.open('', '', '');                newwin.opener = null;                newwin.document.write(code);                newwin.document.close();            }        }// ]]&gt;&lt;/script&gt;&lt;p&gt;8月最后1天，赶紧补篇博客。贴个最近看到的腾讯的特效，写的还可以。先看效果。&lt;/p&gt;&lt;p&gt;&lt;textarea id="txtCode1" class="textareaJay"&gt;&amp;lt;div&amp;gt;     &amp;lt;table width="320"  cellpadding="0" cellspacing="0" align="left" style="border-collapse:collapse;border:1px solid black;"&amp;gt;        &amp;lt;tr&amp;gt;          &amp;lt;td valign="top"&amp;gt;        &amp;lt;div class="Contentnr auto"&amp;gt;&amp;lt;style&amp;gt; #msg_weibo {width:300px;height:186px;*height:186px;_height:170px;margin:10px auto 0;zoom:1; overflow:hidden;font-size:12px;line-height:20px;margin-bottom:4px;background:#ffffff;}#msg_weibo a{margin-right:6px;color:#003C71;text-decoration:none;}#msg_weibo a:hover{color:#c00;text-decoration:underline;}#msg_weibo img{margin-top:2px;}#msg_weibo span{color: #888;}#msg_weibo div{padding:8px 0 11px 0 ;overflow:hidden;zoom:1;background:url(http://mat1.gtimg.com/worldcup/duanzi/duanz6.gif) left bottom repeat-x}#msg_weibo span a{display:block;}#msg_weibo img{float:left;width:50px; height:50px; padding:2px; border:#D6D6D6 1px solid;}#msg_weibo p{float:left;width:295px; padding-left:5px; }&amp;lt;/style&amp;gt;&amp;lt;div id="msg_weibo"&amp;gt;&amp;lt;div class="con"&amp;gt;&amp;lt;p&amp;gt;世锦赛第一场，打得还不错，希望不是昙花一现，要战，便战至消亡！&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class="con"&amp;gt;&amp;lt;p&amp;gt;对刘伟真的无语了关键时刻不是失误就是浪投，男篮要想取得比赛的胜利后卫线上必须得加强防守和减少失误&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class="con"&amp;gt;&amp;lt;p&amp;gt;男篮，加油&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class="con"&amp;gt;&amp;lt;p&amp;gt;昨天竞彩网让分胜负是希腊让中国20分！&amp;hellip;中国打得不错！死了一大片彩民&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class="con"&amp;gt;&amp;lt;p&amp;gt;有希望&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class="con"&amp;gt;&amp;lt;p&amp;gt;晚上的比赛将是男篮在这届世锦赛的首胜。加油&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class="con"&amp;gt;&amp;lt;p&amp;gt;今晚的中国男篮让我刮目相看了，也完全出乎我的意料！积极主动、神勇自信、信赖队友、坚持自己的打法、不慌张，这简直是一支梦幻的国家队，如果个人技术能再好一点，还真有世界强队的样子。能跟前欧洲冠军希腊队打成这样，真的很佩服，不得不竖大拇哥。易建联、王治郅，个个好样的！&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class="con"&amp;gt;&amp;lt;p&amp;gt;&amp;lt;a target="_blank"&amp;gt;刘伟其实这场还行，只是手感不好，如果那两个投篮进了肯定又有特多人说他是好控位了，而且还会说是救了中国，所以不要总怪刘伟，还是因为中国整体实力和希腊比不了，不过这场打的挺好了，这么打下去我相信中国会出线的&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class="con"&amp;gt;&amp;lt;p&amp;gt;鄙视那些自以为了不起的人，同样是中国人，你那么凶不去世锦赛上牛比？&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class="con"&amp;gt;&amp;lt;p&amp;gt;刘炜我草你妈！死你妈老家去！没有姚你什么东西都不是！烂投王&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;       &amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;script language="javascript"&amp;gt; var $ = function (d){    typeof d == "string" &amp;amp;&amp;amp;(d = document.getElementById(d));     return $.fn.call(d);};$.fn = function (){this.addEvent = function (sEventType,fnHandler){if (this.addEventListener) {this.addEventListener(sEventType, fnHandler, false);}     else if (this.attachEvent) {this.attachEvent("on" + sEventType, fnHandler);}     else {this["on" + sEventType] = fnHandler;}}this.removeEvent = function (sEventType,fnHandler){if (this.removeEventListener) {this.removeEventListener(sEventType, fnHandler, false);}     else if (this.detachEvent) {this.detachEvent("on" + sEventType, fnHandler);}     else { this["on" + sEventType] = null;}}return this;};var Class = {create: function() {return function() { this.initialize.apply(this, arguments); }}};var Bind = function (obj,fun,arr){return function() {return fun.apply(obj,arr);}}var Marquee = Class.create();Marquee.prototype = {  initialize: function(id,name,out,speed) {    this.name = name;this.box = $(id);this.out  = 3;//滚动间隔时间,单位秒this.speed = speed;this.d = 1;this.box.style.position = "relative";this.box.scrollTop = 0;var _li = this.box.firstChild;while(typeof(_li.tagName)=="undefined")_li = _li.nextSibling;this.lis = this.box.getElementsByTagName(_li.tagName);this.len = this.lis.length;for(var i=0;i&amp;lt;this.lis.length;i++){    var __li = document.createElement(_li.tagName);__li.innerHTML = this.lis[i].innerHTML;this.box.appendChild(__li);//cloneNodeif(this.lis[i].offsetTop&amp;gt;=this.box.offsetHeight)break;}this.Start();this.box.addEvent("mouseover",Bind(this,function(){clearTimeout(this.timeout);},[]));this.box.addEvent("mouseout",Bind(this,this.Start,[]));  },  Start:function (){  clearTimeout(this.timeout);  this.timeout = setTimeout(this.name+".Up()",this.out*1000)  },  Up:function(){  clearInterval(this.interval);  this.interval = setInterval(this.name+".Fun()",10);  },  Fun:function (){      this.box.scrollTop+=this.speed;  if(this.lis[this.d].offsetTop &amp;lt;= this.box.scrollTop){    clearInterval(this.interval);this.box.scrollTop = this.lis[this.d].offsetTop;this.Start();this.d++;  }  if(this.d &amp;gt;= this.len + 1){     this.d = 1;     this.box.scrollTop = 0;  }  }};$(window).addEvent("load",function (){marquee = new Marquee("msg_weibo","marquee",1,2);});&amp;lt;/script&amp;gt;&amp;lt;/div&amp;gt;&lt;/textarea&gt;&lt;br /&gt;&lt;input class="btnJay" onclick="runCode('txtCode1');" value="Run" type="button" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;看关键的js code：&lt;/p&gt;&lt;p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;var $ = function (d){&lt;br/&gt;    typeof d == "string" &amp;amp;&amp;amp;(d = document.getElementById(d)); &lt;br/&gt;    return $.fn.call(d);&lt;br/&gt;};&lt;br/&gt;$.fn = function (){&lt;br/&gt;this.addEvent = function (sEventType,fnHandler){&lt;br/&gt;if (this.addEventListener) {this.addEventListener(sEventType, fnHandler, false);} &lt;br/&gt;    else if (this.attachEvent) {this.attachEvent("on" + sEventType, fnHandler);} &lt;br/&gt;    else {this["on" + sEventType] = fnHandler;}&lt;br/&gt;}&lt;br/&gt;this.removeEvent = function (sEventType,fnHandler){&lt;br/&gt;if (this.removeEventListener) {this.removeEventListener(sEventType, fnHandler, false);} &lt;br/&gt;    else if (this.detachEvent) {this.detachEvent("on" + sEventType, fnHandler);} &lt;br/&gt;    else { this["on" + sEventType] = null;}&lt;br/&gt;}&lt;br/&gt;return this;&lt;br/&gt;};&lt;br/&gt;var Class = {create: function() {return function() { this.initialize.apply(this, arguments); }}};&lt;br/&gt;var Bind = function (obj,fun,arr){return function() {return fun.apply(obj,arr);}}&lt;br/&gt;var Marquee = Class.create();&lt;br/&gt;Marquee.prototype = {&lt;br/&gt;  initialize: function(id,name,out,speed) {&lt;br/&gt;    this.name = name;&lt;br/&gt;this.box = $(id);&lt;br/&gt;this.out  = 3;//滚动间隔时间,单位秒&lt;br/&gt;this.speed = speed;&lt;br/&gt;this.d = 1;&lt;br/&gt;this.box.style.position = "relative";&lt;br/&gt;this.box.scrollTop = 0;&lt;br/&gt;var _li = this.box.firstChild;&lt;br/&gt;while(typeof(_li.tagName)=="undefined")_li = _li.nextSibling;&lt;br/&gt;this.lis = this.box.getElementsByTagName(_li.tagName);&lt;br/&gt;this.len = this.lis.length;&lt;br/&gt;for(var i=0;i&amp;lt;this.lis.length;i++){&lt;br/&gt;    var __li = document.createElement(_li.tagName);&lt;br/&gt;__li.innerHTML = this.lis[i].innerHTML;&lt;br/&gt;this.box.appendChild(__li);//cloneNode&lt;br/&gt;if(this.lis[i].offsetTop&amp;gt;=this.box.offsetHeight)break;&lt;br/&gt;}&lt;br/&gt;this.Start();&lt;br/&gt;this.box.addEvent("mouseover",Bind(this,function(){clearTimeout(this.timeout);},[]));&lt;br/&gt;this.box.addEvent("mouseout",Bind(this,this.Start,[]));&lt;br/&gt;  },&lt;br/&gt;  Start:function (){&lt;br/&gt;  clearTimeout(this.timeout);&lt;br/&gt;  this.timeout = setTimeout(this.name+".Up()",this.out*1000)&lt;br/&gt;  },&lt;br/&gt;  Up:function(){&lt;br/&gt;  clearInterval(this.interval);&lt;br/&gt;  this.interval = setInterval(this.name+".Fun()",10);&lt;br/&gt;  },&lt;br/&gt;  Fun:function (){&lt;br/&gt;      this.box.scrollTop+=this.speed;&lt;br/&gt;  if(this.lis[this.d].offsetTop &amp;lt;= this.box.scrollTop){&lt;br/&gt;    clearInterval(this.interval);&lt;br/&gt;this.box.scrollTop = this.lis[this.d].offsetTop;&lt;br/&gt;this.Start();&lt;br/&gt;this.d++;&lt;br/&gt;  }&lt;br/&gt;  if(this.d &amp;gt;= this.len + 1){&lt;br/&gt;     this.d = 1;&lt;br/&gt;     this.box.scrollTop = 0;&lt;br/&gt;  }&lt;br/&gt;  }&lt;br/&gt;};&lt;br/&gt;$(window).addEvent("load",function (){&lt;br/&gt;marquee = new Marquee("msg_weibo","marquee",1,2);&lt;br/&gt;});&lt;br/&gt;&lt;/div&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;实现思路&lt;/strong&gt;与以前的文字滚动是一样的，都是先充满当前容器，再通过scrollTop++往上滚的，只不过他是每次滚动的距离不是固定的，是取当前滚动消息的高度。由于scrollTop（滚出当前可视区域的高度）和offsetTop（距离父节点顶部的距离，常用于取某元素在页面的坐标位置）的区别，所以通过 if(this.lis[this.d].offsetTop &amp;lt;= this.box.scrollTop)来判断是否滚动完上条消息，需要停顿下了。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;我觉得亮点之处在于$的写法。通常Prototype里也就取下obj||document.getElementById('objId')，他这里除此外还帮obj绑定了一些方法。他的作用是不是类似于原型扩展String、Array等对象的方法呢。这个可以借鉴。&lt;/p&gt;&lt;p&gt;另外，他初始化时填充容器时用document.createElement-&amp;gt;赋innerHTML-&amp;gt;appendChild来做，我觉的不如直接cloneNode(true)-&amp;gt;appendChild好，如不对，欢迎指正。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;主要还是填下这个月的坑，哈哈。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/ljchow/aggbug/1814094.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/ljchow/archive/2010/08/31/1814094.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/ljchow/archive/2010/07/27/1785632.html</id><title type="text">三栏宽度自适应布局及等高的思考</title><summary type="text">一. 实现三栏宽度自适应第一种方法：首先是一种不推荐的做法，用绝对定位实现。实现要点：左栏left、右栏right设为绝对定位，分别设置width。左栏设置left和top，右栏设置right和top。自适应的中间栏设置为相对定位，设置margin:0 200px。&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "...</summary><published>2010-07-27T13:06:00Z</published><updated>2010-07-27T13:06:00Z</updated><author><name>JayChow</name><uri>http://www.cnblogs.com/ljchow/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ljchow/archive/2010/07/27/1785632.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ljchow/archive/2010/07/27/1785632.html"/><content type="html">&lt;script language="javascript"&gt;// &lt;![CDATA[        function runCode(id) {            var code = document.getElementById(id).value;            if (code != "") {                var newwin = window.open('', '', '');                newwin.opener = null;                newwin.document.write(code);                newwin.document.close();            }        }// ]]&gt;&lt;/script&gt;&lt;p&gt;&lt;strong&gt;一. 实现三栏宽度自适应&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;第一种方法：&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;首先是一种不推荐的做法，用绝对定位实现。&lt;/p&gt;&lt;p&gt;实现要点：左栏left、右栏right设为绝对定位，分别设置width。左栏设置left和top，右栏设置right和top。自适应的中间栏设置为相对定位，设置margin:0 200px。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;        #left&lt;br/&gt;        {&lt;br/&gt;            background-color: #E79F6D;&lt;br/&gt;            width: 200px;&lt;br/&gt;            position: absolute;&lt;br/&gt;            left: 5px;&lt;br/&gt;            top: 105px;&lt;br/&gt;        }&lt;br/&gt;        #center&lt;br/&gt;        {&lt;br/&gt;            background-color: #D6D6D6;&lt;br/&gt;            margin: 0 200px;&lt;br/&gt;            top: 0px;&lt;br/&gt;            position: relative;&lt;br/&gt;        }&lt;br/&gt;        #right&lt;br/&gt;        {&lt;br/&gt;            background-color: #77BBDD;&lt;br/&gt;            width: 200px;&lt;br/&gt;            right: 5px;&lt;br/&gt;            top: 105px;&lt;br/&gt;            position: absolute;&lt;br/&gt;        }&lt;br/&gt;&lt;/div&gt;&lt;p&gt;&lt;textarea class="textareaJay" id="txtCode1"&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&amp;gt;&amp;lt;head&amp;gt;    &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;    &amp;lt;meta http-equiv="Content-Type" content="text/html;charset=utf-8" /&amp;gt;    &amp;lt;mce:style type="text/css"&amp;gt;&amp;lt;!--    body{min-width:400px;}        /* h2去除FF等body上面的空白*/        body, h2        {            margin: 0;        }        #main        {            margin: 5px;        }        #header        {            height: 100px;            background-color: #666;        }        #footer        {            height: 50px;            background-color: #666;        }        /*中间三栏的样式*/        #left        {            background-color: #E79F6D;            width: 200px;            position: absolute;            left: 5px;            top: 105px;        }        #center        {            background-color: #D6D6D6;            margin: 0 200px;            top: 0px;            position: relative;        }        #right        {            background-color: #77BBDD;            width: 200px;            right: 5px;            top: 105px;            position: absolute;        }    --&amp;gt;&amp;lt;/mce:style&amp;gt;&amp;lt;style  type="text/css" _mce_bogus="1"&amp;gt;&amp;lt;!--    body{min-width:400px;}        /* h2去除FF等body上面的空白*/        body, h2        {            margin: 0;        }        #main        {            margin: 5px;        }        #header        {            height: 100px;            background-color: #666;        }        #footer        {            height: 50px;            background-color: #666;        }        /*中间三栏的样式*/        #left        {            background-color: #E79F6D;            width: 200px;            position: absolute;            left: 5px;            top: 105px;        }        #center        {            background-color: #D6D6D6;            margin: 0 200px;            top: 0px;            position: relative;        }        #right        {            background-color: #77BBDD;            width: 200px;            right: 5px;            top: 105px;            position: absolute;        }    --&amp;gt;&amp;lt;/style&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;    &amp;lt;div id="main"&amp;gt;        &amp;lt;div id="header"&amp;gt;            &amp;lt;h2&amp;gt;                header&amp;lt;/h2&amp;gt;        &amp;lt;/div&amp;gt;        &amp;lt;div id="left"&amp;gt;            &amp;lt;div&amp;gt;                两海龟快活后，相约来年再相聚，第二年公龟来到见母龟已在等待，但母龟却大骂：你TMD爽完了也不把我翻过来，都一年了                    &amp;lt;/div&amp;gt;        &amp;lt;/div&amp;gt;        &amp;lt;div id="center"&amp;gt;            中国人喜欢凑热闹是出名的，话说人行道上一位仁兄抬头望天，没过多久，越来越多的人聚拢在他的周围一起望天，最后把警察叔叔引来了，警察叔叔问，看什么呢？旁边的人回答：就是不知道看什么，所以在看呀！然后警察叔叔一层层的问进去，问到最先望天的仁兄：你看什么呢？仁兄回答道：出鼻血不可以啊？！                读书时一直暗恋她，但没勇气表白，更没胆量碰她。毕业后，她已经结婚了，老公跟我是同学。那天下午，她抱着娃娃在喂奶，我找了个很好的借口。我走到她面前，一把两手按住她的MIMI，然后跟她娃娃说，喊叔叔，不喊不给吃!                波兰总统：我坠机了，郁闷啊。 林彪回复：沙发，同楼主，悲剧。 金正日跟贴：只坐火车的飘过，安全。 张作霖跟帖：楼上sb。                        &amp;lt;/div&amp;gt;        &amp;lt;div id="right"&amp;gt;            中国人喜欢凑热闹是出名的        &amp;lt;/div&amp;gt;        &amp;lt;div id="footer"&amp;gt;            &amp;lt;h2&amp;gt;                footer&amp;lt;/h2&amp;gt;        &amp;lt;/div&amp;gt;    &amp;lt;/div&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&lt;/textarea&gt;&lt;br /&gt;&lt;input type="button" value="Run" onclick="runCode('txtCode1');" class="btnJay" /&gt; &lt;/p&gt;&lt;p&gt;这种绝对定位的做法比较死板，牵一发而动全身，而且如果非自适应的栏高度超过自适应的栏高度，并不能撑开底下的footer，谁叫他是绝对定位呢。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;第二种方法：&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;用浮动实现。&lt;/p&gt;&lt;p&gt;实现要点：三栏均为float: left。中间栏设width为100%，设margin:0 -200px。margin-left和margin-right为-200px意味着原本应在的位置可以向左和向右再占200px（width仍然占着100%的宽度，只是不用换行去占这么大地了），则此时3栏位于同一行，且左栏与中间栏左侧重叠，右栏与中间栏右侧重叠。只要再将中间栏的数据左右往里各挤200px即可。所以中间栏中再加了个div，设其margin:0 200px即可。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;        #left&lt;br/&gt;        {            &lt;br/&gt;            width: 200px;&lt;br/&gt;            float: left;&lt;br/&gt;            background-color: #E79F6D;&lt;br/&gt;        }&lt;br/&gt;        #center&lt;br/&gt;        {&lt;br/&gt;            margin: 0 -200px;&lt;br/&gt;            width: 100%;&lt;br/&gt;            float: left;&lt;br/&gt;        }&lt;br/&gt;        #center .inner&lt;br/&gt;        {&lt;br/&gt;            margin: 0 200px;&lt;br/&gt;            background-color: #D6D6D6;            &lt;br/&gt;        }&lt;br/&gt;        #right&lt;br/&gt;        {            &lt;br/&gt;            width: 200px;&lt;br/&gt;            float: left;&lt;br/&gt;            background-color: #77BBDD;&lt;br/&gt;        }&lt;br/&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;textarea class="textareaJay" id="txtCode2"&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&amp;gt;&amp;lt;head&amp;gt;    &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;    &amp;lt;meta http-equiv="Content-Type" content="text/html;charset=utf-8" /&amp;gt;    &amp;lt;mce:style type="text/css"&amp;gt;&amp;lt;!--    body{min-width:500px;}    /* h2去除FF等body上面的空白min-width:500px;*/        body, h2        {            margin: 0;        }                #main        {            margin: 5px;        }        #header        {            height: 100px;            background-color: #666;        }        #footer        {            height: 50px;            background-color: #666;            clear: both;        }        /*中间三栏的样式*/        #left        {                        width: 200px;            float: left;            background-color: #E79F6D;        }        #center        {            margin: 0 -200px;            width: 100%;            float: left;        }        #center .inner        {            margin: 0 200px;            background-color: #D6D6D6;                    }        #right        {                        width: 200px;            float: left;            background-color: #77BBDD;        }    --&amp;gt;&amp;lt;/mce:style&amp;gt;&amp;lt;style  type="text/css" _mce_bogus="1"&amp;gt;&amp;lt;!--    body{min-width:500px;}    /* h2去除FF等body上面的空白min-width:500px;*/        body, h2        {            margin: 0;        }                #main        {            margin: 5px;        }        #header        {            height: 100px;            background-color: #666;        }        #footer        {            height: 50px;            background-color: #666;            clear: both;        }        /*中间三栏的样式*/        #left        {                        width: 200px;            float: left;            background-color: #E79F6D;        }        #center        {            margin: 0 -200px;            width: 100%;            float: left;        }        #center .inner        {            margin: 0 200px;            background-color: #D6D6D6;                    }        #right        {                        width: 200px;            float: left;            background-color: #77BBDD;        }    --&amp;gt;&amp;lt;/style&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;    &amp;lt;div id="main" style="overflow: hidden;" _mce_style="overflow: hidden;"&amp;gt;        &amp;lt;div id="header"&amp;gt;            &amp;lt;h2&amp;gt;                header&amp;lt;/h2&amp;gt;        &amp;lt;/div&amp;gt;        &amp;lt;div id="left"&amp;gt;            两海龟快活后，相约来年再相聚，第二年公龟来到见母龟已在等待，但母龟却大骂：你TMD爽完了也不把我翻过来，都一年了        &amp;lt;/div&amp;gt;        &amp;lt;div id="center"&amp;gt;            &amp;lt;div class="inner "&amp;gt;                中国人喜欢凑热闹是出名的，话说人行道上一位仁兄抬头望天，没过多久，越来越多的人聚拢在他的周围一起望天，最后把警察叔叔引来了，警察叔叔问，看什么呢？旁边的人回答：就是不知道看什么，所以在看呀！然后警察叔叔一层层的问进去，问到最先望天的仁兄：你看什么呢？仁兄回答道：出鼻血不可以啊？！                读书时一直暗恋她，但没勇气表白，更没胆量碰她。毕业后，她已经结婚了，老公跟我是同学。那天下午，她抱着娃娃在喂奶，我找了个很好的借口。我走到她面前，一把两手按住她的MIMI，然后跟她娃娃说，喊叔叔，不喊不给吃!                波兰总统：我坠机了，郁闷啊。 林彪回复：沙发，同楼主，悲剧。 金正日跟贴：只坐火车的飘过，安全。 张作霖跟帖：楼上sb。            &amp;lt;/div&amp;gt;        &amp;lt;/div&amp;gt;        &amp;lt;div id="right"&amp;gt;            中国人喜欢凑热闹是出名的        &amp;lt;/div&amp;gt;        &amp;lt;div id="footer"&amp;gt;            &amp;lt;h2&amp;gt;                footer&amp;lt;/h2&amp;gt;        &amp;lt;/div&amp;gt;    &amp;lt;/div&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&lt;/textarea&gt;&lt;br /&gt;&lt;input type="button" value="Run" onclick="runCode('txtCode2');" class="btnJay" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;第三种方法：&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;与第二种方法利用中间栏的margin实现不同，这里利用三栏外容器的padding实现。当然他们的中间栏都是100%的。&lt;/p&gt;&lt;p&gt;你可以去看一种备受推崇的圣杯布局，点击&lt;a target="_blank" href="http://ued.alipay.com/2008/11/%E7%BF%BB%E8%AF%91%E5%AF%BB%E6%89%BE%E5%9C%A3%E6%9D%AF/"&gt;这里&lt;/a&gt;查看原文译文。下面代码与原文代码不完全一致，但思想是一致的，另外那篇文章的code有个IE7的BUG，我改了下hack。&lt;/p&gt;&lt;p&gt;实现要点：首先设置装着3栏的容器container的padding:0 150px 0 200px（ps:左栏width是200px，右栏width是150px）。由于中间栏是第一个DIV，且设了中间DIV的width:100%。则下面要做的就是：&lt;/p&gt;&lt;p&gt;1. 把左栏DIV放到container的padding-left的空白处：设margin-left: -100%（这个100%是container的width的100%，当然不包含padding），则往左移动了100%的距离，但仍然在padding-left空白处的右侧，所以再利用相对定位，使左移200px，即left:-200px（个人习惯这个），或者right:200px。&lt;/p&gt;&lt;p&gt;2. 把右栏DIV放到container的padding-right的空白处：同上，先使同行显示则设margin-left: -150px，再设right:-150px移动到正确位置。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;        #container&lt;br/&gt;        {&lt;br/&gt;            padding: 0 150px 0 200px;&lt;br/&gt;        }&lt;br/&gt;        #container .column&lt;br/&gt;        {&lt;br/&gt;            position: relative;&lt;br/&gt;            float: left;&lt;br/&gt;        }&lt;br/&gt;        #center&lt;br/&gt;        {&lt;br/&gt;            width: 100%;&lt;br/&gt;        }&lt;br/&gt;        #left&lt;br/&gt;        {&lt;br/&gt;            width: 200px;&lt;br/&gt;            left: -200px;&lt;br/&gt;            margin-left: -100%;&lt;br/&gt;        }&lt;br/&gt;        #right&lt;br/&gt;        {&lt;br/&gt;            width: 150px;&lt;br/&gt;            margin-left: -150px;&lt;br/&gt;            right: -150px;&lt;br/&gt;        }&lt;br/&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-family: Arial, 'courier new'; font-size: 12pt;"&gt;&lt;span style="font-size: 13px; line-height: normal; white-space: pre;"&gt;&lt;span style="font-family: verdana, 'courier new'; font-size: 14pt;"&gt;&lt;span style="font-size: 14px; line-height: 21px; white-space: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;textarea class="textareaJay" id="txtCode3"&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&amp;gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"&amp;gt;&amp;lt;head&amp;gt;    &amp;lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&amp;gt;    &amp;lt;title&amp;gt;The Holy Grail of Layouts: Example #1: A List Apart&amp;lt;/title&amp;gt;    &amp;lt;style type="text/css"&amp;gt;        body        {            min-width: 550px; /* 2 x left width + right width */        }        #container        {            padding: 0 150px 0 200px;        }        #container .column        {            position: relative;            float: left;        }        #center        {            width: 100%;        }        #left        {            width: 200px;            left: -200px;            margin-left: -100%;        }        #right        {            width: 150px;            margin-left: -150px;            right: -150px;        }        #footer        {            clear: both;        }        /*IE6 7 Fix*/        #left        {            left:-200px;            *left: 150px; /* RC width */            left:-200px\0;        }        /*Just for Looks*/        body        {            margin: 0;            padding: 0;            background: #FFF;        }        #header, #footer        {            font-size: large;            text-align: center;            padding: 0.3em 0;            background: #999;        }        #left        {            background: #66F;        }        #center        {            background: #DDD;        }        #right        {            background: #F66;        }        #container .column        {            padding-top: 1em;            text-align: justify;        }    &amp;lt;/style&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;    &amp;lt;div id="header"&amp;gt;        This is the header.&amp;lt;/div&amp;gt;    &amp;lt;div id="container"&amp;gt;        &amp;lt;div id="center" class="column"&amp;gt;            &amp;lt;h1&amp;gt;                This is the main content.&amp;lt;/h1&amp;gt;            &amp;lt;p&amp;gt;                Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh                euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad                minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip                ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate                velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero                eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit                augue duis dolore te feugait nulla.&amp;lt;/p&amp;gt;            &amp;lt;p&amp;gt;                Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh                euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad                minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip                ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate                velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero                eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit                augue duis dolore te feugait nulla.&amp;lt;/p&amp;gt;        &amp;lt;/div&amp;gt;        &amp;lt;div id="left" class="column"&amp;gt;            &amp;lt;h2&amp;gt;                This is the left sidebar.&amp;lt;/h2&amp;gt;            &amp;lt;p&amp;gt;                Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh                euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad                minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip                ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate                velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero                eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit                augue duis dolore te feugait nulla.&amp;lt;/p&amp;gt;        &amp;lt;/div&amp;gt;        &amp;lt;div id="right" class="column"&amp;gt;            &amp;lt;h2&amp;gt;                This is the right sidebar.&amp;lt;/h2&amp;gt;            &amp;lt;p&amp;gt;                Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh                euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad                minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip                ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate                velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero                eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit                augue duis dolore te feugait nulla.&amp;lt;/p&amp;gt;        &amp;lt;/div&amp;gt;    &amp;lt;/div&amp;gt;    &amp;lt;div id="footer"&amp;gt;        This is the footer.&amp;lt;/div&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&lt;/textarea&gt;&lt;br /&gt;&lt;input type="button" value="Run" onclick="runCode('txtCode3');" class="btnJay" /&gt; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;第四种方法：&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;实现要点：这种方法其实和第二种相似，三栏均为float: left。中间栏设width为100%。由于中间栏是第一个DIV，故不需要设置它的margin负值使其位于第一行。此时左栏和右栏将换行显示。通过设置左栏的&amp;nbsp;margin-left: -100%;和右栏的margin-left: -150px;使三栏处于同一行显示。此时刚好处于合理位置故无需设为相对定位进行偏移，这一点不同于第三种方法。&lt;/p&gt;&lt;p&gt;注意：为了兼容IE6，container的zoom:1不可少，它是为了使元素支持haslayerout，常常IE6出现误差不兼容时，应先试下zoom:1是否可以解决。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;        .container&lt;br/&gt;        {&lt;br/&gt;            zoom: 1;&lt;br/&gt;        }&lt;br/&gt;        .column&lt;br/&gt;        {&lt;br/&gt;            float: left;&lt;br/&gt;        }&lt;br/&gt;        .center&lt;br/&gt;        {&lt;br/&gt;            width: 100%;&lt;br/&gt;            background: #D6D6D6;&lt;br/&gt;        }&lt;br/&gt;        .box&lt;br/&gt;        {&lt;br/&gt;            margin: 0 150px 0 200px;&lt;br/&gt;        }&lt;br/&gt;        .left&lt;br/&gt;        {&lt;br/&gt;            margin-left: -100%;&lt;br/&gt;            width: 200px;&lt;br/&gt;            background: #E79F6D;&lt;br/&gt;        }&lt;br/&gt;        .right&lt;br/&gt;        {&lt;br/&gt;            margin-left: -150px;&lt;br/&gt;            width: 150px;&lt;br/&gt;            background: #77BBDD;&lt;br/&gt;        }&lt;br/&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;textarea class="textareaJay" id="txtCode4"&gt;&amp;lt;!DOCTYPE html&amp;gt;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;    &amp;lt;meta charset="gbk" /&amp;gt;    &amp;lt;title&amp;gt;三列等高。中间列优先&amp;lt;/title&amp;gt;    &amp;lt;style type="text/css"&amp;gt;        body, h2        {            margin: 0;        }        body        {            min-width: 550px;        }        /* h2去除FF等body上面的空白*/#main        {            margin: 5px;        }        #header        {            height: 100px;            background-color: gray;        }        #footer        {            height: 50px;            background-color: gray;            clear: both;        }        .container        {            zoom: 1;        }        .column        {            float: left;        }        .center        {            width: 100%;            background: #D6D6D6;        }        .box        {            margin: 0 150px 0 200px;        }        .left        {            margin-left: -100%;            width: 200px;            background: #E79F6D;        }        .right        {            margin-left: -150px;            width: 150px;            background: #77BBDD;        }    &amp;lt;/style&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;    &amp;lt;div id="main"&amp;gt;        &amp;lt;div id="header"&amp;gt;            &amp;lt;h2&amp;gt;                header&amp;lt;/h2&amp;gt;        &amp;lt;/div&amp;gt;        &amp;lt;div class="container"&amp;gt;            &amp;lt;div class="center column"&amp;gt;                &amp;lt;div class="box"&amp;gt;                    中国人喜欢凑热闹是出名的，话说人行道上一位仁兄抬头望天，没过多久，越来越多的人聚拢在他的周围一起望天，最后把警察叔叔引来了，警察叔叔问，看什么呢？旁边的人回答：就是不知道看什么，所以在看呀！然后警察叔叔一层层的问进去，问到最先望天的仁兄：你看什么呢？仁兄回答道：出鼻血不可以啊？！                    读书时一直暗恋她，但没勇气表白，更没胆量碰她。毕业后，她已经结婚了，老公跟我是同学。那天下午，她抱着娃娃在喂奶，我找了个很好的借口。我走到她面前，一把两手按住她的MIMI，然后跟她娃娃说，喊叔叔，不喊不给吃!                    波兰总统：我坠机了，郁闷啊。 林彪回复：沙发，同楼主，悲剧。 金正日跟贴：只坐火车的飘过，安全。 张作霖跟帖：楼上sb。                &amp;lt;/div&amp;gt;            &amp;lt;/div&amp;gt;            &amp;lt;div class="left column"&amp;gt;                两海龟快活后，相约来年再相聚，第二年公龟来到见母龟已在等待，但母龟却大骂：你TMD爽完了也不把我翻过来，都一年了            &amp;lt;/div&amp;gt;            &amp;lt;div class="right column"&amp;gt;                中国人喜欢凑热闹是出名的            &amp;lt;/div&amp;gt;        &amp;lt;/div&amp;gt;        &amp;lt;div id="footer"&amp;gt;            &amp;lt;h2&amp;gt;                footer&amp;lt;/h2&amp;gt;        &amp;lt;/div&amp;gt;    &amp;lt;/div&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&lt;/textarea&gt;&lt;br /&gt;&lt;input type="button" value="Run" onclick="runCode('txtCode4');" class="btnJay" /&gt; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;二. 实现等高&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;个人觉得，其实很多网页设计是不需要等高的，通常可以用背景色搞定，或者很多背景色本来就是空白的。想想当border为1px的DIV等高了是多么丑吧。当然也有要用到等高的，如果css调不出来可以用上必杀招：JS。这里讲的是用CSS实现等高。通常就是用margin-bottom负值和padding-bottom正值抵消来实现。&lt;/p&gt;&lt;p&gt;譬如说：上面第三张方法圣杯布局：只要在3栏外面容器加上overflow:hidden，然后分别给三栏加上：margin-bottom:-10000px;padding-bottom:10000px;即可。但是有个BUG：IE7不work，至于为什么我不知道，欢迎各位大大指教。如下：&lt;/p&gt;&lt;p&gt;&lt;textarea class="textareaJay" id="txtCode5"&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&amp;gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"&amp;gt;&amp;lt;head&amp;gt;    &amp;lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&amp;gt;    &amp;lt;title&amp;gt;The Holy Grail of Layouts: Example #1: A List Apart&amp;lt;/title&amp;gt;    &amp;lt;style type="text/css"&amp;gt;        body        {            min-width: 550px; /* 2 x left width + right width */        }        #container        {            padding: 0 150px 0 200px;            overflow:hidden;        }        #container .column        {            position: relative;            float: left;            margin-bottom:-10000px;            padding-bottom:10000px;        }        #center        {            width: 100%;        }        #left        {            width: 200px;            left: -200px;            margin-left: -100%;        }        #right        {            width: 150px;            margin-left: -150px;            right: -150px;        }        #footer        {            clear: both;        }        /*IE6 7 Fix*/        #left        {            left:-200px;            *left: 150px; /* RC width */            left:-200px\0;        }        /*Just for Looks*/        body        {            margin: 0;            padding: 0;            background: #FFF;        }        #header, #footer        {            font-size: large;            text-align: center;            padding: 0.3em 0;            background: #999;        }        #left        {            background: #66F;        }        #center        {            background: #DDD;        }        #right        {            background: #F66;        }        #container .column        {            padding-top: 1em;            text-align: justify;                    }    &amp;lt;/style&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;    &amp;lt;div id="header"&amp;gt;        This is the header.&amp;lt;/div&amp;gt;    &amp;lt;div id="container"&amp;gt;        &amp;lt;div id="center" class="column"&amp;gt;            &amp;lt;h1&amp;gt;                This is the main content.&amp;lt;/h1&amp;gt;            &amp;lt;p&amp;gt;                Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh                euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad                minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip                ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate                velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero                eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit                augue duis dolore te feugait nulla.&amp;lt;/p&amp;gt;            &amp;lt;p&amp;gt;                Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh                euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad                minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip                ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate                velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero                eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit                augue duis dolore te feugait nulla.&amp;lt;/p&amp;gt;        &amp;lt;/div&amp;gt;        &amp;lt;div id="left" class="column"&amp;gt;            &amp;lt;h2&amp;gt;                This is the left sidebar.&amp;lt;/h2&amp;gt;            &amp;lt;p&amp;gt;                Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh                euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad                minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip                ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate                velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero                eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit                augue duis dolore te feugait nulla.&amp;lt;/p&amp;gt;        &amp;lt;/div&amp;gt;        &amp;lt;div id="right" class="column"&amp;gt;            &amp;lt;h2&amp;gt;                This is the right sidebar.&amp;lt;/h2&amp;gt;            &amp;lt;p&amp;gt;                Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh                euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad                minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip                ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate                velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero                eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit                augue duis dolore te feugait nulla.&amp;lt;/p&amp;gt;        &amp;lt;/div&amp;gt;    &amp;lt;/div&amp;gt;    &amp;lt;div id="footer"&amp;gt;        This is the footer.&amp;lt;/div&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&lt;/textarea&gt;&lt;br /&gt;&lt;input type="button" value="Run" onclick="runCode('txtCode5');" class="btnJay" /&gt; &lt;/p&gt;&lt;p&gt;对于第四种方法，使用同样的方法：&lt;/p&gt;&lt;p&gt;&lt;textarea class="textareaJay" id="txtCode6"&gt;&amp;lt;!DOCTYPE html&amp;gt;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;    &amp;lt;meta charset="gbk" /&amp;gt;    &amp;lt;title&amp;gt;三列等高。中间列优先&amp;lt;/title&amp;gt;    &amp;lt;style type="text/css"&amp;gt;        body, h2        {            margin: 0;        }        body        {            min-width: 550px;        }        /* h2去除FF等body上面的空白*/        #main        {            margin: 5px;        }        #header        {            height: 100px;            background-color: gray;        }        #footer        {            height: 50px;            background-color: gray;            clear: both;        }        .container        {            overflow: hidden;            zoom: 1;        }        .column        {            float: left;            padding-bottom: 10000px;            margin-bottom: -10000px;        }        .center        {            width: 100%;            background: #D6D6D6;        }        .box        {            margin: 0 150px 0 200px;        }        .left        {            margin-left: -100%;            width: 200px;            background: #E79F6D;        }        .right        {            margin-left: -150px;            width: 150px;            background: #77BBDD;        }    &amp;lt;/style&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;    &amp;lt;div id="main"&amp;gt;        &amp;lt;div id="header"&amp;gt;            &amp;lt;h2&amp;gt;                header&amp;lt;/h2&amp;gt;        &amp;lt;/div&amp;gt;        &amp;lt;div class="container"&amp;gt;            &amp;lt;div class="center column"&amp;gt;                &amp;lt;div class="box"&amp;gt;                    中国人喜欢凑热闹是出名的，话说人行道上一位仁兄抬头望天，没过多久，越来越多的人聚拢在他的周围一起望天，最后把警察叔叔引来了，警察叔叔问，看什么呢？旁边的人回答：就是不知道看什么，所以在看呀！然后警察叔叔一层层的问进去，问到最先望天的仁兄：你看什么呢？仁兄回答道：出鼻血不可以啊？！                    读书时一直暗恋她，但没勇气表白，更没胆量碰她。毕业后，她已经结婚了，老公跟我是同学。那天下午，她抱着娃娃在喂奶，我找了个很好的借口。我走到她面前，一把两手按住她的MIMI，然后跟她娃娃说，喊叔叔，不喊不给吃!                    波兰总统：我坠机了，郁闷啊。 林彪回复：沙发，同楼主，悲剧。 金正日跟贴：只坐火车的飘过，安全。 张作霖跟帖：楼上sb。                &amp;lt;/div&amp;gt;            &amp;lt;/div&amp;gt;            &amp;lt;div class="left column"&amp;gt;                两海龟快活后，相约来年再相聚，第二年公龟来到见母龟已在等待，但母龟却大骂：你TMD爽完了也不把我翻过来，都一年了            &amp;lt;/div&amp;gt;            &amp;lt;div class="right column"&amp;gt;                中国人喜欢凑热闹是出名的            &amp;lt;/div&amp;gt;        &amp;lt;/div&amp;gt;        &amp;lt;div id="footer"&amp;gt;            &amp;lt;h2&amp;gt;                footer&amp;lt;/h2&amp;gt;        &amp;lt;/div&amp;gt;    &amp;lt;/div&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&lt;/textarea&gt;&lt;br /&gt;&lt;input type="button" value="Run" onclick="runCode('txtCode6');" class="btnJay" /&gt; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;呃，就说这么多了。&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/ljchow/aggbug/1785632.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/ljchow/archive/2010/07/27/1785632.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/ljchow/archive/2010/07/06/1768749.html</id><title type="text">前端开发必须知道的JS（二） 闭包及应用</title><summary type="text">在前端开发必须知道的JS（一） 原型和继承一文中说过下面写篇闭包，加之最近越来越发现需要加强我的闭包应用能力，所以此文不能再拖了。本文讲的是函数闭包，不涉及对象闭包（如用with实现）。如果你觉得我说的有偏差，欢迎拍砖，欢迎指教。一. 闭包的理论首先必须了解以下几个概念：执行环境每调用一个函数时（执行函数时），系统会为该函数创建一个封闭的局部的运行环境，即该函数的执行环境。函数总是...</summary><published>2010-07-06T00:25:00Z</published><updated>2010-07-06T00:25:00Z</updated><author><name>JayChow</name><uri>http://www.cnblogs.com/ljchow/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ljchow/archive/2010/07/06/1768749.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ljchow/archive/2010/07/06/1768749.html"/><content type="html">&lt;script language="javascript"&gt;// &lt;![CDATA[        function runCode(id) {            var code = document.getElementById(id).value;            if (code != "") {                var newwin = window.open('', '', '');                newwin.opener = null;                newwin.document.write(code);                newwin.document.close();            }        }// ]]&gt;&lt;/script&gt;&lt;p&gt;在&lt;a href="http://www.cnblogs.com/ljchow/archive/2010/06/08/1753526.html"&gt;&lt;span style="font-family: Arial;"&gt;前端开发必须知道的JS（一） 原型和继承&lt;/span&gt;&lt;/a&gt;一文中说过下面写篇闭包，加之最近越来越发现需要加强我的闭包应用能力，所以此文不能再拖了。本文讲的是函数闭包，不涉及对象闭包（如用with实现）。如果你觉得我说的有偏差，欢迎拍砖，欢迎指教。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;一. 闭包的理论&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;首先必须了解以下几个概念：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;执行环境&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;每调用一个函数时（执行函数时），系统会为该函数创建一个封闭的局部的运行环境，即该函数的执行环境。函数总是在自己的执行环境中执行，如读写局部变量、函数参数、运行内部逻辑。创建执行环境的过程包含了创建函数的作用域，函数也是在自己的作用域下执行的。从另一个角度说，每个函数执行环境都有一个作用域链，子函数的作用域链包括它的父函数的作用域链。关于作用域、作用域链请看下面。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;作用域、作用域链&lt;/strong&gt;&lt;strong&gt;、调用对象&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;函数作用域分为词法作用域和动态作用域。&lt;/p&gt;&lt;p&gt;词法作用域是函数定义时的作用域，即静态作用域。当一个函数定义时，他的词法作用域就确定了，词法作用域说明的是在函数结构的嵌套关系下，函数作用的范围。这个时候也就形成了该函数的作用域链。作用域链就是把这些具有嵌套层级关系的作用域串联起来。函数的内部[[scope]]属性指向了该作用域链。&lt;/p&gt;&lt;p&gt;动态作用域是函数调用执行时的作用域。当一个函数被调用时，首先将函数内部[[scope]]属性指向了函数的作用域链，然后会创建一个调用对象，并用该调用对象记录函数参数和函数的局部变量，将其置于作用域链顶部。动态作用域就是通过把该调用对象加到作用域链的顶部来创建的，此时的[[scope]]除了具有定义时的作用域链，还具有了调用时创建的调用对象。换句话说，执行环境下的作用域等于该函数定义时就确定的作用域链加上该函数刚刚创建的调用对象，从而也形成了新的作用域链。所以说是动态的作用域，并且作用域链也随之发生了变化。再看这里的作用域，其实是一个对象链，这些对象就是函数调用时创建的调用对象，以及他上面一层层的调用对象直到最上层的全局对象。　&lt;/p&gt;&lt;p&gt;譬如全局环境下的函数A内嵌套了一个函数B，则该函数B的作用域链就是：函数B的作用域&amp;mdash;&amp;gt;函数A的作用域&amp;mdash;&amp;gt;全局window的作用域。当函数B调用时，寻找某标识符，会按函数B的作用域&amp;mdash;&amp;gt;函数A的作用域&amp;mdash;&amp;gt;全局window的作用域去寻找，实际上是按函数B的调用对象&amp;mdash;&amp;gt;函数A的调用对象&amp;mdash;&amp;gt;全局对象这个顺序去寻找的。也就是说当函数调用时，函数的作用域链实际上是调用对象链。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;闭包&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;在动态执行环境中，数据实时地发生变化，为了保持这些非持久型变量的值，我们用闭包这种载体来存储这些动态数据（看完下面的应用就会很好的体会这句话）。闭包的定义：所谓&amp;ldquo;闭包&amp;rdquo;，指的是一个拥有许多变量和绑定了这些变量的环境的表达式（通常是一个函数），因而这些变量也是该表达式的一部分。&lt;/p&gt;&lt;p&gt;闭包就是嵌套在函数里面的内部函数，并且该内部函数可以访问外部函数中声明的所有局部变量、参数和其他内部函数。当该内部函数在外部函数外被调用，就生成了闭包。（实际上任何函数都是全局作用域的内部函数，都能访问全局变量，所以都是window的闭包）&lt;/p&gt;&lt;p&gt;譬如下面这个例子：&lt;/p&gt;    &amp;lt;script type="text/javascript"&amp;gt;&lt;br/&gt;        function f(x) {&lt;br/&gt;            var a = 0;&lt;br/&gt;            a++;&lt;br/&gt;            x++;&lt;br/&gt;            var inner = function() {&lt;br/&gt;                return a + x;&lt;br/&gt;            }&lt;br/&gt;            return inner;&lt;br/&gt;        }&lt;br/&gt;        var test = f(1);&lt;br/&gt;        alert(test());&lt;br/&gt;    &amp;lt;/script&amp;gt;&lt;br/&gt;&lt;p&gt;垃圾回收机制：如果某个对象不再被引用，该对象将被回收。&lt;/p&gt;&lt;p&gt;再结合前面所讲的一些概念，在执行var test=f(1)时创建了f的调用对象，这里暂且记作obj，执行完后虽然退出了外部执行环境，但内部函数inner被外部函数f外面的一个变量test引用。由于外部函数创建的调用对象obj有一个属性指向此内部函数，而现在这个内部函数又被引用，所以调用对象obj会继续存在，不会被垃圾回收器回收，其函数参数x和局部变量a都会在这个调用对象中得以维持。虽然调用对象不能被直接访问，但是该调用对象已成为内部函数作用域链中的一部分，可以被内部函数访问并修改，所以执行test()时，可以正确访问x和a。所以说，&amp;nbsp;当执行了外部函数时，生成了闭包，被引用的外部函数的变量将继续存在。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;二. 闭包的应用&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;应用1：&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;这个是我在用js模拟排序算法过程遇到的问题。我要输出每一次插入排序后的数组，如果在循环中写成&lt;/p&gt;&lt;p&gt;setTimeout(function() { $("proc").innerHTML += arr + "&amp;lt;br/&amp;gt;"; }, i * 500);&lt;/p&gt;&lt;p&gt;会发现每次输出的都是最终排好序的数组，因为arr数组不会为你保留每次排序的状态值。为了保存会不断发生变化的数组值，我们用外面包裹一层函数来实现闭包，用闭包存储这个动态数据。下面用了2种方式实现闭包，一种是用参数存储数组的值，一种是用临时变量存储，后者必须要深拷贝。所有要通过闭包存储非持久型变量，均可以用临时变量或参数两种方式实现。&lt;/p&gt;&lt;p&gt;&lt;textarea class="textareaJay" id="txtCode1"&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&amp;gt;&amp;lt;head&amp;gt;    &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;    &amp;lt;script type="text/javascript"&amp;gt;&amp;lt;!--        var arr = [4, 5, 6, 8, 7, 9, 3, 2, 1, 0];        var $ = function(id) { return document.getElementById(id); }        var Sort = {            Insert: function() {                for (var i = 1; i &amp;lt; arr.length; i++) {                    for (var j = 0; j &amp;lt; i; j++) {                        if (arr[i] &amp;lt; arr[j]) {                            arr[i] = [arr[j], arr[j] = arr[i]][0];                        }                    }                    setTimeout((function() {                        var m = [];                        for (var j = 0; j &amp;lt; arr.length; j++) {                            m[j] = arr[j];                        }                        return function() {                            $("proc").innerHTML += m + "&amp;lt;br /&amp;gt;";                        }                    })(), i * 500);                    //or 写成下面这样也可以                    /*                    setTimeout((function(m) {                        return function() {                            $("proc").innerHTML += m + "&amp;lt;br /&amp;gt;";                        }                    })(arr.join(",")), i * 500);                    */                }                return arr;            }        }// --&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;    &amp;lt;div&amp;gt;        var a = [4, 5, 6, 8, 7, 9, 3, 2, 1, 0];&amp;lt;/div&amp;gt;    &amp;lt;div&amp;gt;        &amp;lt;input type="button" value="插入排序" onclick="Sort.Insert();" /&amp;gt;    &amp;lt;/div&amp;gt;    Proc:&amp;lt;br /&amp;gt;    &amp;lt;div id="proc"&amp;gt;    &amp;lt;/div&amp;gt;    &amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&lt;/textarea&gt;&lt;br /&gt;&lt;input type="button" value="Run" onclick="runCode('txtCode1');" class="btnJay" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;应用2：&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;这个是无忧上的例子（点击&lt;a href="http://bbs.51js.com/viewthread.php?tid=84815"&gt;这里&lt;/a&gt;查看原帖），为每个&amp;lt;li&amp;gt;结点绑定click事件弹出循环的索引值。起初写成&lt;/p&gt;&lt;div id="_mcePaste" style="position: absolute; overflow-x: hidden; overflow-y: hidden; width: 1px; height: 1px; top: 1306px; left: -10000px;"&gt;id.onclick = function(){&lt;/div&gt;&lt;div id="_mcePaste" style="position: absolute; overflow-x: hidden; overflow-y: hidden; width: 1px; height: 1px; top: 1306px; left: -10000px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span style="white-space: pre;"&gt;&amp;nbsp;&lt;/span&gt;alert(i);&lt;/div&gt;&lt;div id="_mcePaste" style="position: absolute; overflow-x: hidden; overflow-y: hidden; width: 1px; height: 1px; top: 1306px; left: -10000px;"&gt;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;p&gt;id.onclick = function(){alert(i);}&lt;/p&gt;&lt;p&gt;发现最终弹出的都是4，而不是想要的 1、2、3，因为循环完毕后i值变成了4。为了保存i的值，同样我们用闭包实现：&lt;/p&gt;&lt;p&gt;&lt;textarea class="textareaJay" id="txtCode2"&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&amp;gt;&amp;lt;head&amp;gt;    &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;    &amp;lt;script type="text/javascript"&amp;gt;&amp;lt;!--        window.onload = function() {            for (var i = 1; i &amp;lt; 4; i++) {                var id = document.getElementById("a" + i);                id.onclick = (function(i) {                    return function() {                        alert(i);                    }                })(i);            }        }    // --&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;    &amp;lt;ul&amp;gt;        &amp;lt;li id="a1"&amp;gt;aa&amp;lt;/li&amp;gt;        &amp;lt;li id="a2"&amp;gt;aa&amp;lt;/li&amp;gt;        &amp;lt;li id="a3"&amp;gt;aa&amp;lt;/li&amp;gt;    &amp;lt;/ul&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&lt;/textarea&gt;&lt;br /&gt;&lt;input type="button" value="Run" onclick="runCode('txtCode2');" class="btnJay" /&gt;&lt;/p&gt;&lt;p&gt;（ps：var a =&amp;nbsp;(function(){})(); 与 var a =new function(){}效果是一样的，均表示自执行函数。）&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;应用3：&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;下面的code是缓存的应用，catchNameArr。在匿名函数的调用对象中保存catch的值，返回的对象由于被CachedBox变量引用导致匿名函数的调用对象不会被回收，从而保持了catch的值。可以通过CachedBox.getCatch("regionId");来操作，若找不到regionId则从后台取，catchNameArr 主要是为了防止缓存过大。&lt;/p&gt;    &amp;lt;script type="text/javascript"&amp;gt;&lt;br/&gt;        var CachedBox = (function() {&lt;br/&gt;            var cache = {}, catchNameArr = [], catchMax = 10000;&lt;br/&gt;            return {&lt;br/&gt;                getCatch: function(name) {&lt;br/&gt;                    if (name in cache) {&lt;br/&gt;                        return cache[name];&lt;br/&gt;                    }&lt;br/&gt;                    var value = GetDataFromBackend(); &lt;br/&gt;                    cache[name] = value;&lt;br/&gt;                    catchNameArr.push(name);&lt;br/&gt;                    this.clearOldCatch();&lt;br/&gt;                    return value;&lt;br/&gt;                },&lt;br/&gt;                clearOldCatch: function() {&lt;br/&gt;                    if (catchNameArr.length &amp;gt; catchMax) {&lt;br/&gt;                        delete cache[catchNameArr.shift()];&lt;br/&gt;                    }&lt;br/&gt;                }&lt;br/&gt;            };&lt;br/&gt;        })();&lt;br/&gt;    &amp;lt;/script&amp;gt;&lt;br/&gt;&lt;div&gt;&lt;/div&gt;&lt;p&gt;同理，也可以用这种思想实现自增长的ID。&lt;/p&gt;    &amp;lt;script type="text/javascript"&amp;gt;&lt;br/&gt;        var GetId = (function() {&lt;br/&gt;            var id = 0;&lt;br/&gt;            return function() {&lt;br/&gt;                return id++;&lt;br/&gt;            }&lt;br/&gt;        })();&lt;br/&gt;        var newId1 = GetId();&lt;br/&gt;        var newId2 = GetId();&lt;br/&gt;    &amp;lt;/script&amp;gt;&lt;br/&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;应用4：&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;这个是无忧上月MM的例子（点击&lt;a href="http://bbs.51js.com/viewthread.php?tid=66361"&gt;这里&lt;/a&gt;查看原帖），用&lt;span class="bold"&gt;闭包实现程序的暂停执行功能，还蛮创意的&lt;/span&gt;。&lt;/p&gt;&lt;p&gt;&lt;textarea class="textareaJay" id="txtCode4"&gt;&amp;lt;input type="button" value="继续" onclick='st();'/&amp;gt;    &amp;lt;script type="text/javascript"&amp;gt;&amp;lt;!--        var st = (function() {            alert(1);            alert(2);            return function() {                alert(3);                alert(4);            }        })();    // --&amp;gt;&amp;lt;/script&amp;gt;&lt;/textarea&gt;&lt;br /&gt;&lt;input type="button" value="Run" onclick="runCode('txtCode4');" class="btnJay" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;把这个作用延伸下，我想到了用他来实现window.confirm。&lt;/p&gt;&lt;p&gt;&lt;textarea class="textareaJay" id="txtCode5"&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&amp;gt;&amp;lt;head&amp;gt;    &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;    &amp;lt;script type="text/javascript"&amp;gt;        var $ = function(id) { return "string" == typeof id ? document.getElementById(id) : id; }        var doConfirm = function(divId) {            $(divId).style.display = "";            function closeDiv() {                $(divId).style.display = "none";            }            return function(isOk) {                if (isOk) {                    alert("Do deleting...");                }                closeDiv();            }        }    &amp;lt;/script&amp;gt;    &amp;lt;style type="text/css"&amp;gt;        body        {            font-family: Arial;            font-size: 13px;            background-color: #FFFFFF;        }        #confirmDiv        {            width: 200px;            height: 100px;            border: dashed 1px black;            position: absolute;            left: 200px;            top: 150px;        }    &amp;lt;/style&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;    &amp;lt;div&amp;gt;        &amp;lt;input name="btn2" type="button" value="删除" onclick="doConfirm('confirmDiv');" /&amp;gt;        &amp;lt;div id="confirmDiv" style="display: none;"&amp;gt;            &amp;lt;div style='position: absolute; left: 50px; top: 15px;'&amp;gt;                &amp;lt;p&amp;gt;                    你确定要删除吗?&amp;lt;/p&amp;gt;                &amp;lt;input type="button" value="确定" onclick="doConfirm('confirmDiv')(true);" /&amp;gt;                &amp;lt;input type="button" value="取消" onclick="doConfirm('confirmDiv')(false);" /&amp;gt;            &amp;lt;/div&amp;gt;        &amp;lt;/div&amp;gt;    &amp;lt;/div&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&lt;/textarea&gt;&lt;br /&gt;&lt;input type="button" value="Run" onclick="runCode('txtCode5');" class="btnJay" /&gt; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;看了上面的这些应用，再回到前面的一句话：在动态执行环境中，数据实时地发生变化，为了保持这些非持久型变量的值，我们用闭包这种载体来存储这些动态数据。这就是闭包的作用。也就说遇到需要存储动态变化的数据或将被回收的数据时，我们可以通过外面再包裹一层函数形成闭包来解决。&lt;/p&gt;&lt;p&gt;当然，闭包会导致很多外部函数的调用对象不能释放，滥用闭包会使得内存泄露，所以在频繁生成闭包的情景下我们要估计下他带来的副作用。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;毕了。希望能对大家有所帮助。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/ljchow/aggbug/1768749.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/ljchow/archive/2010/07/06/1768749.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/ljchow/archive/2010/06/30/1768683.html</id><title type="text">分享下如何写JS数组sort的比较函数</title><summary type="text">我们知道，数组的sort方法可以对数组元素进行排序，默认是按ASCII字母表顺序排序。如果要根据其他的顺序排序就需要为sort方法提供一个比较函数作为参数。这里讲的就是如何写这个比较函数。譬如:var a=[1,5,3,7];a.sort(function(a, b) { return b-a});//从大到小排列那如果复杂点的顺序应该如何写这个比较函数呢。对于比较函数func...</summary><published>2010-06-30T14:23:00Z</published><updated>2010-06-30T14:23:00Z</updated><author><name>JayChow</name><uri>http://www.cnblogs.com/ljchow/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ljchow/archive/2010/06/30/1768683.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ljchow/archive/2010/06/30/1768683.html"/><content type="html">&lt;script language="javascript"&gt;// &lt;![CDATA[        function runCode(id) {            var code = document.getElementById(id).value;            if (code != "") {                var newwin = window.open('', '', '');                newwin.opener = null;                newwin.document.write(code);                newwin.document.close();            }        }// ]]&gt;&lt;/script&gt;&lt;p&gt;我们知道，数组的sort方法可以对数组元素进行排序，默认是按ASCII字母表顺序排序。如果要根据其他的顺序排序就需要为sort方法提供一个比较函数作为参数。这里讲的就是如何写这个比较函数。&lt;/p&gt;&lt;p&gt;譬如:&lt;/p&gt;&lt;p&gt;var a=[1,5,3,7];&lt;/p&gt;&lt;p&gt;a.sort(function(a, b) { return b-a});//从大到小排列&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;那如果复杂点的顺序应该如何写这个比较函数呢。&lt;/p&gt;&lt;p&gt;对于比较函数function f(a,b){...} ，若返回正数，则说明a和b需要交换，否则不交换。所以我们可以通通根据下面的格式去写比较函数：&lt;/p&gt;        function f(a, b) {&lt;br/&gt;            if (...) {&lt;br/&gt;                return 1;&lt;br/&gt;&lt;br/&gt;            }&lt;br/&gt;            return -1;&lt;br/&gt;        }&lt;br/&gt;&lt;p&gt;然后，我们要做的就是写出if里面的条件，这个条件就是返回a、b需要交换的条件。譬如：对var a=["a","A","B","b"];进行不分大小写并从大到小排序，仅当a.toString().toLowerCase() &amp;lt; b.toString().toLowerCase()时，交换a、b，所以用此填充if条件即可。比较函数就是：&lt;/p&gt;&lt;p&gt;function f(a, b) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (a.toString().toLowerCase() &amp;lt; b.toString().toLowerCase()) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 1;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return -1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;再譬如：要使数组的元素按先奇数后偶数的顺序排列，则若需a、b交换，仅当满足a是偶数且b是奇数条件即可，再按从小到大排序，仅当满足a、b均是奇数或偶数且a&amp;gt;b时即可。如下：&lt;/p&gt;&lt;p&gt;&lt;textarea class="textareaJay" id="txtCode"&gt;    &amp;lt;script type="text/javascript"&amp;gt;        var a = [1, 7, 3, 9, 5, 6, 2, 8, 4];        function f(a, b) {            if (0 == a % 2 &amp;amp;&amp;amp; 1 == b % 2) {                return 1;            }            if ((1 == a % 2 &amp;amp;&amp;amp; 1 == b % 2 || 0 == a % 2 &amp;amp;&amp;amp; 0 == b % 2) &amp;amp;&amp;amp; a &amp;gt; b) {                return 1;            }            return -1;        }        alert(a.sort(f));    &amp;lt;/script&amp;gt;&lt;/textarea&gt;&lt;br /&gt;&lt;input type="button" value="Run" onclick="runCode('txtCode');" class="btnJay" /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/ljchow/aggbug/1768683.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/ljchow/archive/2010/06/30/1768683.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/ljchow/archive/2010/06/25/1762955.html</id><title type="text">JS写for循环，为什么一定要加var</title><summary type="text">我知道，有些人（譬如之前的我）写js的for循环时，都不习惯加上var，这当然是语法允许的。譬如下面。[代码]但是，这真的不是个好习惯，下面我就说说为什么写Js的for循环一定要加var，否则会时不时给你带来烦人难查的bug。譬如现在我们要实现这样的功能：输出102030405060708090100通过下面code实现，WriteNum...</summary><published>2010-06-24T23:20:00Z</published><updated>2010-06-24T23:20:00Z</updated><author><name>JayChow</name><uri>http://www.cnblogs.com/ljchow/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ljchow/archive/2010/06/25/1762955.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ljchow/archive/2010/06/25/1762955.html"/><content type="html">&lt;script language="javascript"&gt;// &lt;![CDATA[        function runCode(id) {            var code = document.getElementById(id).value;            if (code != "") {                var newwin = window.open('', '', '');                newwin.opener = null;                newwin.document.write(code);                newwin.document.close();            }        }// ]]&gt;&lt;/script&gt;&lt;p&gt;我知道，有些人（譬如之前的我）写js的for循环时，都不习惯加上var，这当然是语法允许的。譬如下面。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;(i&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;i&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;10&lt;/span&gt;&lt;span style="color: #000000;"&gt;;i&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;){&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;就不写成: var i=0&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;　alert(i);&lt;br /&gt; }&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;但是，这真的不是个好习惯，下面我就说说为什么写Js的for循环一定要加var，否则会时不时给你带来烦人难查的bug。&lt;/p&gt;&lt;p&gt;譬如现在我们要实现这样的功能：输出&lt;/p&gt;&lt;p&gt;10&lt;br /&gt;20&lt;br /&gt;30&lt;br /&gt;40&lt;br /&gt;50&lt;br /&gt;60&lt;br /&gt;70&lt;br /&gt;80&lt;br /&gt;90&lt;br /&gt;100&lt;br /&gt;通过下面code实现，WriteNumber从1到10循环，每次循环调用TenTimes方法返回10倍的索引值。　&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #008080;"&gt; 1&lt;/span&gt; &lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;script type&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;text/javascript&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 2&lt;/span&gt; &lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; WriteNumber() {&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 3&lt;/span&gt; &lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;i &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;; i &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;10&lt;/span&gt;&lt;span style="color: #000000;"&gt;; i&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 4&lt;/span&gt; &lt;span style="color: #000000;"&gt;                document.write(TenTimes(i) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;br/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 5&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 6&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 7&lt;/span&gt; &lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; TenTimes(v) {&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 8&lt;/span&gt; &lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; result &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 9&lt;/span&gt; &lt;span style="color: #000000;"&gt;            alert(i);&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;10&lt;/span&gt; &lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;           &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt; (i &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;; i &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;10&lt;/span&gt;&lt;span style="color: #000000;"&gt;; i&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;11&lt;/span&gt; &lt;span style="color: #000000;"&gt;                result &lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt; v;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;12&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;13&lt;/span&gt; &lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; result;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;14&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;15&lt;/span&gt; &lt;span style="color: #000000;"&gt;        WriteNumber();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;16&lt;/span&gt; &lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;alert(i)&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;17&lt;/span&gt; &lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;script&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;你会发现最终只输出了10。大家可以用下面的代码框运行测试。&lt;/p&gt;&lt;div&gt;&lt;textarea class="textareaJay" id="txtCode1"&gt;&amp;lt;script type="text/javascript"&amp;gt;        function WriteNumber() {            for (i = 1; i &amp;lt;= 10; i++) {                document.write(TenTimes(i) + "&amp;lt;br/&amp;gt;");            }        }        function TenTimes(v) {            var result = 0;             alert(i);            for (i = 1; i &amp;lt;= 10; i++) {                result += v;            }            return result;        }        WriteNumber();        //alert(i)&amp;lt;/script&amp;gt;&lt;/textarea&gt;&lt;br /&gt;&lt;input type="button" value="Run" onclick="runCode('txtCode1');" class="btnJay" /&gt; &lt;/div&gt;&lt;p&gt;关于在WriteNumber和TenTimes方法里加不加var，就是说是否声明索引变量i有4种情况：&lt;/p&gt;&lt;p&gt;第一种情况，WriteNumber和TenTimes各有1个for循环，2个循环里均没有用var声明i索引变量。&lt;/p&gt;&lt;p&gt;运行结果：会alert出1。结果只输出了10，不是我们所想要的。&lt;/p&gt;&lt;p&gt;分析：执行WriteNumber时，其作用域内并没有找到声明过的变量i，直接对i进行赋值，则隐式的将i声明为全局变量，（&lt;strong&gt;对于函数内部未声明过的变量，如果给它赋值，会隐式的将它声明为全局变量。&lt;/strong&gt;） 循环开始，i=1，调TenTimes方法，发现TenTimes方法也没有声明过变量i&amp;nbsp;，所以TenTimes里的i就是全局变量i，就和WriteNumber的i成了同一个。&amp;nbsp; 这时line9 alert出来的自然是1了。TenTimes循环了10次，使得全局的i变成了11，自然WriteNumber就不会执行第2次循环操作了。&amp;nbsp;&lt;/p&gt;&lt;p&gt;验证：如果在WriteNumber();语句后加alert(i)，即取消line16的注释，会发现alert出12（12=10+2个i++），证明了i此时为windows对象。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;第二种情况，WriteNumber声明了i变量，即line3: var i=1，TenTimes未声明i变量，即line10:&amp;nbsp;i=1。&lt;/p&gt;&lt;p&gt;运行结果：line9 alert(i)处报i未定义错误 ，因为WriteNumber有声明过变量i，所以没有成为全局的i，TenTimes执行时又没有声明过i，所以报未定义。若注释掉line9，输出结果正确。因为当TenTimes里运行到i=1时，隐式将i声明是全局变量，不影响WriteNumber里的i。WriteNumber仍然会执行10次循环。&lt;/p&gt;&lt;p&gt;验证：如果在WriteNumber();语句后加alert(i)，即取消line16的注释，会发现alert出11（11=10+TenTimes里的i++），证明了此时有windows.i。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;第三种情况，WriteNumber没有声明i变量，即line3: i=1，TenTimes声明了i变量，即line10:&amp;nbsp;var i=1。&lt;/p&gt;&lt;p&gt;运行结果：弹出10个undefined。因为WriteNumber未声明i，隐式将i声明是全局变量，而TenTimes有声明过变量i（补充一句，对于变量的声明都是在预编译中进行的），所以line9 alert(i)里的i不是windows.i，而是TenTimes声明的变量i，此时当然是undefined了。同时，发现输出结果正确，因为TenTimes的i不会影响WriteNumber的全局i，WriteNumber仍然是执行了10次循环。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;第四种情况：WriteNumber和TenTimes均用var声明了i。&lt;/p&gt;&lt;p&gt;运行结果：注释掉line9，不说了，好习惯，结果当然完美。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;　&amp;nbsp; 虽然第二、三种情况输出结果是正确的，但是对i的使用很混乱，应该算是运气导致结果正确，因为刚好1个是window.i，一个是函数内部的私有变量i，使得没有冲突。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;此文虽然讲的是写for循环为什么一定要加var，但其实讲的是变量的作用域(或者说变量的生命周期)。理解之后，下面的2段code运行结果你应该能准确说出答案吧。&lt;/p&gt;&lt;p&gt;&lt;textarea class="textareaJay" id="txtCode"&gt;    &amp;lt;script type="text/javascript"&amp;gt;        var a = 1;        function f() {            alert(a);            var a = 2;        }        f();            &amp;lt;/script&amp;gt;&lt;/textarea&gt; &lt;br /&gt;&lt;input type="button" value="Run" onclick="runCode('txtCode');" class="btnJay" /&gt;&lt;/p&gt;&lt;p&gt;&lt;textarea class="textareaJay" id="txtCode2"&gt;    &amp;lt;script type="text/javascript"&amp;gt;        var a = 1;        function f() {            a = 2;             alert(a);        }        f();        alert(a);    &amp;lt;/script&amp;gt;&lt;/textarea&gt; &lt;br /&gt;&lt;input type="button" value="Run" onclick="runCode('txtCode2');" class="btnJay" /&gt;&lt;/p&gt;&lt;p&gt;Ps：说道coding的好习惯，想起了这个：if(a==3) 应该写成if(3==a) 。因为我们常会把==写成1个=，如果把变量写在右边时只写了1个=，就会报编译错误，这样就能及时发现错误。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/ljchow/aggbug/1762955.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/ljchow/archive/2010/06/25/1762955.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/ljchow/archive/2010/06/25/1764843.html</id><title type="text">无题</title><summary type="text">非技术类。Updating from time to time order by date desc .何不更品一壶茶，且看沧桑云淡然。不见尽处烟袅袅，徐徐心丝漫漫路。--2010-04-16春去梦尽，称称几斤。夜深人静，悠悠至今。我的梦境，何知远近。谁的风景，谁的小径。--2009-05-17一夜秋风几层凉多少落叶风雨中满城桂花香如故途经故里谁低语--2008-10-25</summary><published>2010-06-24T23:19:00Z</published><updated>2010-06-24T23:19:00Z</updated><author><name>JayChow</name><uri>http://www.cnblogs.com/ljchow/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ljchow/archive/2010/06/25/1764843.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ljchow/archive/2010/06/25/1764843.html"/><content type="html">&lt;p&gt;非技术类。Updating from time to time order by date desc .&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;何不更品一壶茶，&lt;br /&gt;且看沧桑云淡然。&lt;br /&gt;不见尽处烟袅袅，&lt;br /&gt;徐徐心丝漫漫路。&lt;/p&gt;&lt;p&gt;--2010-04-16&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;春去梦尽，称称几斤。&lt;br /&gt;夜深人静，悠悠至今。&lt;br /&gt;我的梦境，何知远近。&lt;br /&gt;谁的风景，谁的小径。&lt;/p&gt;&lt;p&gt;--2009-05-17&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;一夜秋风几层凉&lt;br /&gt;多少落叶风雨中&lt;br /&gt;满城桂花香如故&lt;br /&gt;途经故里谁低语&lt;/p&gt;&lt;p&gt;--2008-10-25&lt;/p&gt;&lt;img src="http://www.cnblogs.com/ljchow/aggbug/1764843.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/ljchow/archive/2010/06/25/1764843.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/ljchow/archive/2010/06/10/1755182.html</id><title type="text">Js动画（二）梦幻西游之逍遥生游览北俱芦洲</title><summary type="text">背景：梦幻西游；人物：逍遥生；场景：北俱芦洲。游览行为：点击鼠标，人物行走。右键也能使人物转向。由于我只找到了人物四个方向的素材，所以如果刚好正对人物位置的水平或垂直方向，走起来会有些别扭，如果用八方图，code上只要再加正东南西北四个方向即可。一共使用了2张图片，一张是人物的四方图，一张是场景图，场景图用于设为body背景。贴上一部分效果图，你可以在本文结尾下载整个demo。先贴...</summary><published>2010-06-10T00:56:00Z</published><updated>2010-06-10T00:56:00Z</updated><author><name>JayChow</name><uri>http://www.cnblogs.com/ljchow/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ljchow/archive/2010/06/10/1755182.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ljchow/archive/2010/06/10/1755182.html"/><content type="html">&lt;p&gt;背景：梦幻西游；人物：逍遥生；场景：北俱芦洲。&lt;/p&gt;&lt;p&gt;游览行为：点击鼠标，人物行走。右键也能使人物转向。由于我只找到了人物四个方向的素材，所以如果刚好正对人物位置的水平或垂直方向，走起来会有些别扭，如果用八方图，code上只要再加正东南西北四个方向即可。一共使用了2张图片，一张是人物的四方图，一张是场景图，场景图用于设为body背景。&lt;/p&gt;&lt;p&gt;贴上一部分效果图，你可以在本文结尾&lt;a href="#xyqTTT"&gt;下载整个demo&lt;/a&gt;。&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/img/ljchow/201006/2010061000244172.png" /&gt;&lt;/p&gt;&lt;p&gt;先贴上Common类，主要就是通用的操作，如取元素位置，取鼠标位置，我的很多文章里都用到的。&lt;/p&gt;&lt;div onclick="cnblogs_code_show('76cf6220-37bb-4f8b-9425-fd2754d74e56')" style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;img style="display: none;" onclick="cnblogs_code_hide('76cf6220-37bb-4f8b-9425-fd2754d74e56',event)" id="code_img_opened_76cf6220-37bb-4f8b-9425-fd2754d74e56" class="code_img_opened" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" /&gt;&lt;div class="cnblogs_code_hide" id="cnblogs_code_open_76cf6220-37bb-4f8b-9425-fd2754d74e56"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;script type&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;text/javascript&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; Common &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br /&gt;            getElementPos: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(el) {&lt;br /&gt;                el &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.getItself(el);&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; _x &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;, _y &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;do&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br /&gt;                    _x &lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt; el.offsetLeft;&lt;br /&gt;                    _y &lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt; el.offsetTop;&lt;br /&gt;                } &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;while&lt;/span&gt;&lt;span style="color: #000000;"&gt; (el &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; el.offsetParent);&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; { x: _x, y: _y };&lt;br /&gt;            },&lt;br /&gt;            getItself: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(id) {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000;"&gt; id &lt;/span&gt;&lt;span style="color: #000000;"&gt;?&lt;/span&gt;&lt;span style="color: #000000;"&gt; document.getElementById(id) : id;&lt;br /&gt;            },&lt;br /&gt;            getMousePos: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(ev) {&lt;br /&gt;                ev &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; ev &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; window.event;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (ev.pageX &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; ev.pageY) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br /&gt;                        x: ev.pageX,&lt;br /&gt;                        y: ev.pageY&lt;br /&gt;                    };&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (document.documentElement &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; document.documentElement.scrollTop) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br /&gt;                        x: ev.clientX &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; document.documentElement.scrollLeft &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; document.documentElement.clientLeft,&lt;br /&gt;                        y: ev.clientY &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; document.documentElement.scrollTop &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; document.documentElement.clientTop&lt;br /&gt;                    };&lt;br /&gt;                }&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (document.body) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br /&gt;                        x: ev.clientX &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; document.body.scrollLeft &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; document.body.clientLeft,&lt;br /&gt;                        y: ev.clientY &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; document.body.scrollTop &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; document.body.clientTop&lt;br /&gt;                    };&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }  &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;script&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;贴上Walker类，&lt;/p&gt;&lt;div onclick="cnblogs_code_show('17bdf458-138b-4fe2-b26d-9717f6c5d48e')" style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;img style="display: none;" onclick="cnblogs_code_hide('17bdf458-138b-4fe2-b26d-9717f6c5d48e',event)" id="code_img_opened_17bdf458-138b-4fe2-b26d-9717f6c5d48e" class="code_img_opened" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" /&gt;&lt;div class="cnblogs_code_hide" id="cnblogs_code_open_17bdf458-138b-4fe2-b26d-9717f6c5d48e"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;script type&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;text/javascript&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; Class &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br /&gt;            create: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;() {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;() { &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.init.apply(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;, arguments); }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; Walker &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Class.create();&lt;br /&gt;        Walker.prototype &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br /&gt;            init: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(_src, _walkerSize, initPos) {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;人物朝向，值与人物图片的行数要对应。譬如说图片第1行是朝向SouthWest的，则this.direction.SouthWest值为1&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.direction &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; { SouthEast: &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;, SouthWest: &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;, NorthEast: &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;, NorthWest: &lt;/span&gt;&lt;span style="color: #000000;"&gt;3&lt;/span&gt;&lt;span style="color: #000000;"&gt; };&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.currentDirection &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.direction.SouthEast; &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;当前人物朝向&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.speed &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0.5&lt;/span&gt;&lt;span style="color: #000000;"&gt;; &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;默认速度：每次移动0.5px 通过此和起点终点距离算出移动总次数（总帧数）&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.walkFlag &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.moveFlag &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.walkerSize &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; _walkerSize;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.walker &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; document.createElement(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;div&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.walker.style.cssText &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;position:absolute;width:&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.walkerSize.w &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;height:&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.walkerSize.h &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;clip:rect(0px &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.walkerSize.w &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;px &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.walkerSize.h &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;px 0px)&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                document.body.appendChild(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.walker);&lt;br /&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.img &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; document.createElement(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;img&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.img.src &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; _src;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.img.style.position &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;absolute&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.walker.appendChild(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.img);&lt;br /&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.walker.style.left &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos.x &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;px&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.walker.style.top &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos.y &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;px&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;            },&lt;br /&gt;            setWalkStatus: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(row, col) {&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;col=0设置为该方向的初始状态。row值与方向direction一致&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.img.style.left &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;col &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.walkerSize.w &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;px&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.img.style.top &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;row &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.walkerSize.h &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;px&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;            },&lt;br /&gt;            getDirection: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(mousePos) {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; dir &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Common.getElementPos(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.walker);&lt;br /&gt;                initPos.x &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos.x &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.walkerSize.w &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;, initPos.y &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos.y &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.walkerSize.h &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (mousePos.y &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos.y) {&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;上方&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (mousePos.x &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos.x) { &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;东北&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                        dir &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.direction.NorthEast;&lt;br /&gt;                    }&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; { &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;西北&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                        dir &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.direction.NorthWest;&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; { &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;下方&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (mousePos.x &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos.x) { &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;东南&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                        dir &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.direction.SouthEast;&lt;br /&gt;                    }&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; { &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;西南&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                        dir &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.direction.SouthWest;&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.currentDirection &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; dir;&lt;br /&gt;            },&lt;br /&gt;            beginWalk: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(mousePos) {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.getDirection(mousePos);&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; row &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.currentDirection;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.setWalkStatus(row, &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; walkerObj &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; tmp &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.walkFlag &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; setInterval(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;() {&lt;br /&gt;                    tmp &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; tmp &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;3&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;?&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt; : tmp;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;walkerObj.img.style.left = -walkerObj.walkerSize.w * tmp + "px";&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                    walkerObj.setWalkStatus(row, tmp);&lt;br /&gt;                    tmp&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                },&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #000000;"&gt;200&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;            },&lt;br /&gt;            stopWalk: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;() {&lt;br /&gt;                clearInterval(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.walkFlag);&lt;br /&gt;                clearInterval(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.moveFlag);&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.setWalkStatus(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.currentDirection, &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;            },&lt;br /&gt;            walk: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(e) {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;停止当前动作&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.stopWalk();&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; mousePos &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Common.getMousePos(e);&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.beginWalk(mousePos);&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.move(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.walker, { x: mousePos.x &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.walkerSize.w &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;, y: mousePos.y &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.walkerSize.h &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt; });&lt;br /&gt;            },&lt;br /&gt;            setDirection: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(e) {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.getDirection(Common.getMousePos(e));&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.setWalkStatus(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.currentDirection, &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;            },&lt;br /&gt;            timer: &lt;/span&gt;&lt;span style="color: #000000;"&gt;10&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;            move: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(obj, targetPos) {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; elPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Common.getElementPos(obj);&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; { x: elPos.x, y: elPos.y }&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; distance &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.sqrt(Math.abs(targetPos.x &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos.x) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.abs(targetPos.x &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos.x) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.abs(targetPos.y &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos.y) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.abs(targetPos.y &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos.y));&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; count &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.ceil(distance &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.speed);&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; tmpWalkObj &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; Func &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Tween.Linear;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.moveFlag &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; setInterval(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;() {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (currentCount &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; count) {&lt;br /&gt;                        tmpWalkObj.stopWalk();&lt;br /&gt;                    }&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br /&gt;                        currentCount&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; tmpX &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Func(initPos.x, targetPos.x, currentCount, count);&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; tmpY &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Func(initPos.y, targetPos.y, currentCount, count);&lt;br /&gt;                        obj.style.left &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; tmpX &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;px&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                        obj.style.top &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; tmpY &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;px&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;清除小数点的误差&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (Math.abs(tmpX &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos.x) &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br /&gt;                            obj.style.left &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos.x &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;px&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                        }&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (Math.abs(tmpY &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos.y) &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br /&gt;                            obj.style.top &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos.y &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;px&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                        }&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;边界控制&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (parseInt(obj.style.left) &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br /&gt;                            obj.style.left &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;px&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                        }&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (parseInt(obj.style.top) &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br /&gt;                            obj.style.top &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;px&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                        }&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (parseInt(obj.style.left) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; tmpWalkObj.walkerSize.w &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1024&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;场景图片尺寸：1024*764&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                            tmpWalkObj.stopWalk();&lt;br /&gt;                        }&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (parseInt(obj.style.top) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; tmpWalkObj.walkerSize.h &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;764&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br /&gt;                            tmpWalkObj.stopWalk();&lt;br /&gt;                        }&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;                , &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.timer);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; Tween &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br /&gt;            Linear: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count) {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; d &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;script&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;人物行走如何实现呢？3步。&lt;/p&gt;&lt;p&gt;在这3步之前，当然会用init方法初始化1个div做为容器，来存放这个人物图片，所谓的人物行走就是这个div在移动。（细节见code的注释）&lt;/p&gt;&lt;p&gt;1. 显示人物四方图的某一块小图。&lt;/p&gt;&lt;p&gt;本例的四方图是4*4=16个人物形态构成，就是要显示具体的1个人物形态。实现方法：setWalkStatus。由于外部容器div的尺寸只是1个人物形态的尺寸，通过设置人物图片的left和top值，就能显示图片中第row行第col列的人物。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;2.让人物动起来。&lt;/p&gt;&lt;p&gt;实现方法：beginWalk。通过setInterval循环执行setWalkStatus方法就能实现同一行的四个动作连贯显示。人物就动起来了。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;3.让动起来的人物移动。&lt;/p&gt;&lt;p&gt;鼠标点击后移动，要首先算出朝哪个方向移动，从而显示那个方向的人物图片，方法：getDirection。&lt;/p&gt;&lt;p&gt;移动的主要code在move方法里。如何move和&lt;a href="http://www.cnblogs.com/ljchow/archive/2010/06/09/1754352.html"&gt;Js动画（一）基础&lt;/a&gt;所说的move原理一样，但是又不能照搬，因为那里的move是自己设置总帧数从而控制时间，达到设置移动快慢的目的。而这里，人物的移动肯定永远是匀速的，行走的距离长自然执行的总次数多，时间也就越长。所以原先自定义的count数要算出来，移动总次数=人物行走的总距离（像素）/速度（每1次移动speed像素），其他照旧。然后添加一些人物移动的边界限制。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;文档加载后初始化逍遥生及注册逍遥生行为事件。&lt;/p&gt;&lt;div onclick="cnblogs_code_show('b6802ed8-e179-4e5d-9315-0605454df470')" style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;img style="display: none;" onclick="cnblogs_code_hide('b6802ed8-e179-4e5d-9315-0605454df470',event)" id="code_img_opened_b6802ed8-e179-4e5d-9315-0605454df470" class="code_img_opened" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" /&gt;&lt;div class="cnblogs_code_hide" id="cnblogs_code_open_b6802ed8-e179-4e5d-9315-0605454df470"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;script type&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;text/javascript&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        window.onload &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;() {&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; 逍遥生 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; Walker(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;walker2.png&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, { w: &lt;/span&gt;&lt;span style="color: #000000;"&gt;70&lt;/span&gt;&lt;span style="color: #000000;"&gt;, h: &lt;/span&gt;&lt;span style="color: #000000;"&gt;92&lt;/span&gt;&lt;span style="color: #000000;"&gt; }, { x: &lt;/span&gt;&lt;span style="color: #000000;"&gt;100&lt;/span&gt;&lt;span style="color: #000000;"&gt;, y: &lt;/span&gt;&lt;span style="color: #000000;"&gt;50&lt;/span&gt;&lt;span style="color: #000000;"&gt; });&lt;br /&gt;            document.documentElement.onclick &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(e) {&lt;br /&gt;                逍遥生.walk(e);&lt;br /&gt;            }&lt;br /&gt;            document.documentElement.oncontextmenu &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(e) {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (document.all) {&lt;br /&gt;                    window.event.returnValue &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                }&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (e.preventDefault) {&lt;br /&gt;                        e.preventDefault();&lt;br /&gt;                        e.stopPropagation();&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;                逍遥生.setDirection(e);&lt;br /&gt;            }&lt;br /&gt;        }        &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;script&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;其中，var 逍遥生 = new Walker("walker2.png", { w: 70, h: 92 }, { x: 100, y: 50 });&amp;nbsp;第一个参数是人物图片，第二个参数是单个人物形态尺寸，70=图片宽度280/4，第三个参数是，人物的出生地。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;毕了。&lt;/p&gt;&lt;p&gt;&lt;a style="color: red;" href="http://files.cnblogs.com/ljchow/xyq.rar" id="xyqTTT"&gt;点击下载&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/ljchow/aggbug/1755182.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/ljchow/archive/2010/06/10/1755182.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/ljchow/archive/2010/06/09/1754352.html</id><title type="text">Js动画（一）基础</title><summary type="text">在再谈js拖拽（二）仿iGoogle自定义首页模块拖拽的最后，我说了接下来要写Js动画，转瞬拖到了今天，呵呵。这篇主要讲动画的基础，就是几个最基本的特效，即：移动，渐变和尺寸变化。接下来写个梦幻西游版逍遥生角色行走的动画，然后再适时的写些动画有关的例子，争取把这个系列写好。我们玩魔兽世界的时候可以通过ctrl+r来查看当前的帧数，当帧数很小时，会觉得很卡，帧数很高则很流畅。所谓帧数就是1秒内显...</summary><published>2010-06-09T00:17:00Z</published><updated>2010-06-09T00:17:00Z</updated><author><name>JayChow</name><uri>http://www.cnblogs.com/ljchow/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ljchow/archive/2010/06/09/1754352.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ljchow/archive/2010/06/09/1754352.html"/><content type="html">&lt;script language="javascript"&gt;// &lt;![CDATA[        function runCode(id) {            var code = document.getElementById(id).value;            if (code != "") {                var newwin = window.open('', '', '');                newwin.opener = null;                newwin.document.write(code);                newwin.document.close();            }        }// ]]&gt;&lt;/script&gt;&lt;p&gt;在&lt;a href="http://www.cnblogs.com/ljchow/archive/2010/05/07/1729345.html"&gt;再谈js拖拽（二）仿iGoogle自定义首页模块拖拽&lt;/a&gt;的最后，我说了接下来要写Js动画，转瞬拖到了今天，呵呵。这篇主要讲动画的基础，就是几个最基本的特效，即：移动，渐变和尺寸变化。接下来写个梦幻西游版逍遥生角色行走的动画，然后再适时的写些动画有关的例子，争取把这个系列写好。&lt;/p&gt;&lt;p&gt;我们玩魔兽世界的时候可以通过ctrl+r来查看当前的帧数，当帧数很小时，会觉得很卡，帧数很高则很流畅。所谓帧数就是1秒内显示图片的数量。当这么多帧图片连起来显示，就形成了动画。&lt;/p&gt;&lt;p&gt;Js中实现动画都是靠setInterval或者setTimeout来实现。setInterval自身就能不断循环来执行计算从而显示新的帧，setTimeout是间隔一段时间后仅执行一次，他需要配合函数循环实现，很多人偏爱setTimeout来实现。本文采用setInterval实现。&lt;/p&gt;&lt;p&gt;据说，普通人眼能看到1/24秒，就是说1秒至少24帧，每次移位间隔需要小于1000/24=41.7毫秒，也就说setInterval要每隔至少40毫秒执行一次，一般地，我们采用10毫秒，当然间隔时间越短，客户端执行计算次数就越多，如果你code计算量大则可以适当调长些。&lt;/p&gt;&lt;p&gt;&lt;textarea class="textareaJay" id="txtCode1"&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&amp;gt;&amp;lt;head&amp;gt;    &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;     &amp;lt;script type="text/javascript"&amp;gt;        /*        t:currentCount 当前执行第t次        b:initPos 初始值        c:targetPos - initPos 发生偏移的距离值        d:count 一共执行d次        效果：http://www.robertpenner.com/easing/easing_demo.html         JavaScript Tween算法及缓动效果 http://www.cnblogs.com/cloudgamer/archive/2009/01/06/tween.html        */        var Tween = {            Linear: function(initPos, targetPos, currentCount, count) {                var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                return c * t / d + b;            },            Quad: {                easeIn: function(initPos, targetPos, currentCount, count) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    return c * (t /= d) * t + b;                },                easeOut: function(initPos, targetPos, currentCount, count) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    return -c * (t /= d) * (t - 2) + b;                },                easeInOut: function(initPos, targetPos, currentCount, count) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    if ((t /= d / 2) &amp;lt; 1) return c / 2 * t * t + b;                    return -c / 2 * ((--t) * (t - 2) - 1) + b;                }            },            Cubic: {                easeIn: function(initPos, targetPos, currentCount, count) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    return c * (t /= d) * t * t + b;                },                easeOut: function(initPos, targetPos, currentCount, count) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    return c * ((t = t / d - 1) * t * t + 1) + b;                },                easeInOut: function(initPos, targetPos, currentCount, count) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    if ((t /= d / 2) &amp;lt; 1) return c / 2 * t * t * t + b;                    return c / 2 * ((t -= 2) * t * t + 2) + b;                }            },            Quart: {                easeIn: function(initPos, targetPos, currentCount, count) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    return c * (t /= d) * t * t * t + b;                },                easeOut: function(initPos, targetPos, currentCount, count) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    return -c * ((t = t / d - 1) * t * t * t - 1) + b;                },                easeInOut: function(initPos, targetPos, currentCount, count) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    if ((t /= d / 2) &amp;lt; 1) return c / 2 * t * t * t * t + b;                    return -c / 2 * ((t -= 2) * t * t * t - 2) + b;                }            },            Quint: {                easeIn: function(initPos, targetPos, currentCount, count) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    return c * (t /= d) * t * t * t * t + b;                },                easeOut: function(initPos, targetPos, currentCount, count) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    return c * ((t = t / d - 1) * t * t * t * t + 1) + b;                },                easeInOut: function(initPos, targetPos, currentCount, count) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    if ((t /= d / 2) &amp;lt; 1) return c / 2 * t * t * t * t * t + b;                    return c / 2 * ((t -= 2) * t * t * t * t + 2) + b;                }            },            Sine: {                easeIn: function(initPos, targetPos, currentCount, count) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    return -c * Math.cos(t / d * (Math.PI / 2)) + c + b;                },                easeOut: function(initPos, targetPos, currentCount, count) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    return c * Math.sin(t / d * (Math.PI / 2)) + b;                },                easeInOut: function(initPos, targetPos, currentCount, count) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    return -c / 2 * (Math.cos(Math.PI * t / d) - 1) + b;                }            },            Expo: {                easeIn: function(initPos, targetPos, currentCount, count) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    return (t == 0) ? b : c * Math.pow(2, 10 * (t / d - 1)) + b;                },                easeOut: function(initPos, targetPos, currentCount, count) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    return (t == d) ? b + c : c * (-Math.pow(2, -10 * t / d) + 1) + b;                },                easeInOut: function(initPos, targetPos, currentCount, count) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    if (t == 0) return b;                    if (t == d) return b + c;                    if ((t /= d / 2) &amp;lt; 1) return c / 2 * Math.pow(2, 10 * (t - 1)) + b;                    return c / 2 * (-Math.pow(2, -10 * --t) + 2) + b;                }            },            Circ: {                easeIn: function(initPos, targetPos, currentCount, count) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    return -c * (Math.sqrt(1 - (t /= d) * t) - 1) + b;                },                easeOut: function(initPos, targetPos, currentCount, count) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    return c * Math.sqrt(1 - (t = t / d - 1) * t) + b;                },                easeInOut: function(initPos, targetPos, currentCount, count) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    if ((t /= d / 2) &amp;lt; 1) return -c / 2 * (Math.sqrt(1 - t * t) - 1) + b;                    return c / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1) + b;                }            },            Elastic: {                easeIn: function(initPos, targetPos, currentCount, count, a, p) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    if (t == 0) return b; if ((t /= d) == 1) return b + c; if (!p) p = d * .3;                    if (!a || a &amp;lt; Math.abs(c)) { a = c; var s = p / 4; }                    else var s = p / (2 * Math.PI) * Math.asin(c / a);                    return -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;                },                easeOut: function(initPos, targetPos, currentCount, count, a, p) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    if (t == 0) return b; if ((t /= d) == 1) return b + c; if (!p) p = d * .3;                    if (!a || a &amp;lt; Math.abs(c)) { a = c; var s = p / 4; }                    else var s = p / (2 * Math.PI) * Math.asin(c / a);                    return (a * Math.pow(2, -10 * t) * Math.sin((t * d - s) * (2 * Math.PI) / p) + c + b);                },                easeInOut: function(initPos, targetPos, currentCount, count, a, p) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    if (t == 0) return b; if ((t /= d / 2) == 2) return b + c; if (!p) p = d * (.3 * 1.5);                    if (!a || a &amp;lt; Math.abs(c)) { a = c; var s = p / 4; }                    else var s = p / (2 * Math.PI) * Math.asin(c / a);                    if (t &amp;lt; 1) return -.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;                    return a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p) * .5 + c + b;                }            },            Back: {                easeIn: function(initPos, targetPos, currentCount, count, s) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    if (s == undefined) s = 1.70158;                    return c * (t /= d) * t * ((s + 1) * t - s) + b;                },                easeOut: function(initPos, targetPos, currentCount, count, s) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    if (s == undefined) s = 1.70158;                    return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;                },                easeInOut: function(initPos, targetPos, currentCount, count, s) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    if (s == undefined) s = 1.70158;                    if ((t /= d / 2) &amp;lt; 1) return c / 2 * (t * t * (((s *= (1.525)) + 1) * t - s)) + b;                    return c / 2 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2) + b;                }            },            Bounce: {                easeIn: function(initPos, targetPos, currentCount, count) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    return c - Tween.Bounce.easeOut(d - t, 0, c, d) + b;                },                easeOut: function(initPos, targetPos, currentCount, count) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    if ((t /= d) &amp;lt; (1 / 2.75)) {                        return c * (7.5625 * t * t) + b;                    } else if (t &amp;lt; (2 / 2.75)) {                        return c * (7.5625 * (t -= (1.5 / 2.75)) * t + .75) + b;                    } else if (t &amp;lt; (2.5 / 2.75)) {                        return c * (7.5625 * (t -= (2.25 / 2.75)) * t + .9375) + b;                    } else {                        return c * (7.5625 * (t -= (2.625 / 2.75)) * t + .984375) + b;                    }                },                easeInOut: function(initPos, targetPos, currentCount, count) {                    var b = initPos, c = targetPos - initPos, t = currentCount, d = count;                    if (t &amp;lt; d / 2) return Tween.Bounce.easeIn(t * 2, 0, c, d) * .5 + b;                    else return Tween.Bounce.easeOut(t * 2 - d, 0, c, d) * .5 + c * .5 + b;                }            }        }         ///------------------------------------------------------------------------------------------------------                Animation = {            timer: 10,            SetOpacity: function(obj, n) {                if (document.all) {                    obj.filters.alpha.opacity = n;                }                else {                    obj.style.opacity = n / 100;                }            },            fade: function(obj, target, count, Func) {                obj = this.getItself(obj);                var currentCount = 0;                count = Math.abs(count) || 1;                target = target &amp;lt; 0 ? 0 : (target &amp;gt; 100) ? 100 : target;                var init = document.all ? obj.filters.alpha.opacity : window.getComputedStyle(obj, null).opacity * 100;                Func = Func || Tween.Linear;                var opr = this;                var flag = setInterval(function() {                    if (currentCount &amp;gt; count) {                        clearInterval(flag);                    }                    else {                        currentCount++;                        var tmp = Func(init, target, currentCount, count);                        opr.SetOpacity(obj, tmp);                        //清除小数点的误差                        if (Math.abs(tmp - target) &amp;lt; 1) {                            opr.SetOpacity(obj, target);                        }                    }                }                , this.timer);            },            resize: function(obj, targetPos, count, Func) {                obj = this.getItself(obj);                var currentCount = 0;                count = Math.abs(count) || 1;                var initPos = { x: obj.offsetWidth, y: obj.offsetHeight }                Func = Func || Tween.Linear;                targetPos = { x: targetPos.x &amp;lt; 0 ? 0 : targetPos.x, y: targetPos.y &amp;lt; 0 ? 0 : targetPos.y }                var flag = setInterval(function() {                    if (currentCount &amp;gt; count) {                        clearInterval(flag);                    }                    else {                        currentCount++;                        var tmpX = Func(initPos.x, targetPos.x, currentCount, count);                        var tmpY = Func(initPos.y, targetPos.y, currentCount, count);                        //width值不能小于0，但是算法返回值有可能出现负值                        try {                            obj.style.width = tmpX + "px";                            obj.style.height = tmpY + "px";                        }                        catch (e) {                        }                        //清除小数点的误差                        if (Math.abs(tmpX - targetPos.x) &amp;lt; 1) {                            obj.style.width = targetPos.x + "px";                        }                        if (Math.abs(tmpY - targetPos.y) &amp;lt; 1) {                            obj.style.height = targetPos.y + "px";                        }                    }                }                , this.timer);            },            move: function(obj, targetPos, count, Func) {                obj = this.getItself(obj);                var currentCount = 0;                count = Math.abs(count) || 1;                var elPos = this.getElementPos(obj);                var initPos = { x: elPos.x, y: elPos.y }                Func = Func || Tween.Linear;                var flag = setInterval(function() {                    if (currentCount &amp;gt; count) {                        clearInterval(flag);                    }                    else {                        currentCount++;                        var tmpX = Func(initPos.x, targetPos.x, currentCount, count);                        var tmpY = Func(initPos.y, targetPos.y, currentCount, count);                        obj.style.left = tmpX + "px";                        obj.style.top = tmpY + "px";                        //清除小数点的误差                        if (Math.abs(tmpX - targetPos.x) &amp;lt; 1) {                            obj.style.left = targetPos.x + "px";                        }                        if (Math.abs(tmpY - targetPos.y) &amp;lt; 1) {                            obj.style.top = targetPos.y + "px";                        }                    }                }                , this.timer);            },            getElementPos: function(el) {                el = this.getItself(el);                var _x = 0, _y = 0;                do {                    _x += el.offsetLeft;                    _y += el.offsetTop;                } while (el = el.offsetParent);                return { x: _x, y: _y };            },            getItself: function(id) {                return "string" == typeof id ? document.getElementById(id) : id;            }        }    &amp;lt;/script&amp;gt;     &amp;lt;style type="text/css"&amp;gt;        .div        {            position: absolute;            border: solid 1px #849BCA;            left: 50px;            top: 100px;            width: 160px;            height: 130px;            background-color: #DBE4ED;            white-space: nowrap;            overflow: hidden;            opacity: 1;             filter: alpha(opacity=100);        }    &amp;lt;/style&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;    &amp;lt;input type="button" value="Move" onclick="Animation.move('divObj',{x:500,y:500},100,Tween.Quart.easeInOut);" /&amp;gt;    &amp;lt;input type="button" value="Resize" onclick="Animation.resize('divObj',{x:50,y:50},100,Tween.Cubic.easeIn);" /&amp;gt;    &amp;lt;input type="button" value="SetOpacity" onclick="Animation.fade('divObj',50,100);" /&amp;gt;    &amp;lt;input type="button" value="Move&amp;amp;Resize" onclick="Animation.resize('divObj',{x:300,y:200},100);Animation.move('divObj',{x:300,y:300},100);" /&amp;gt;    &amp;lt;input type="button" value="Move&amp;amp;Resize&amp;amp;SetOpacity" onclick="Animation.fade('divObj',50,100);Animation.resize('divObj',{x:300,y:200},100);Animation.move('divObj',{x:100,y:100},100);" /&amp;gt;    &amp;lt;input type="button" value="Reset" onclick="javascript:window.location.reload();" /&amp;gt;    &amp;lt;div id="divObj" class="div" style=""&amp;gt;        &amp;lt;div style="border: solid 1px green; width: 70px;"&amp;gt;            ~_~ ----&amp;gt;&amp;lt;/div&amp;gt;        &amp;lt;input type="text" value="input" style="width: 50px;" /&amp;gt;&amp;lt;br /&amp;gt;        &amp;lt;input type="button" value="button" /&amp;gt;&amp;lt;br /&amp;gt;        &amp;lt;img src="http://images.cnblogs.com/logo_small.gif" alt="" /&amp;gt;    &amp;lt;/div&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&lt;/textarea&gt;&lt;br /&gt;&lt;input type="button" value="Run" onclick="runCode('txtCode1');" class="btnJay" /&gt; &lt;/p&gt;&lt;p&gt;首先贴上封装好的动画类Animation。&lt;/p&gt;&lt;div onclick="cnblogs_code_show('d8671e18-035c-4abc-a2c4-c2f3df024fc7')" style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" class="code_img_closed" id="code_img_closed_d8671e18-035c-4abc-a2c4-c2f3df024fc7" /&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" onclick="cnblogs_code_hide('d8671e18-035c-4abc-a2c4-c2f3df024fc7',event)" class="code_img_opened" id="code_img_opened_d8671e18-035c-4abc-a2c4-c2f3df024fc7" style="display: none;" /&gt;&lt;div class="cnblogs_code_hide" id="cnblogs_code_open_d8671e18-035c-4abc-a2c4-c2f3df024fc7"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #000000;"&gt;Animation &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br /&gt;            timer: &lt;/span&gt;&lt;span style="color: #000000;"&gt;10&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;            SetOpacity: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(obj, n) {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (document.all) {&lt;br /&gt;                    obj.filters.alpha.opacity &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; n;&lt;br /&gt;                }&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br /&gt;                    obj.style.opacity &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; n &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;100&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                }&lt;br /&gt;            },&lt;br /&gt;            fade: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(obj, target, count, Func) {&lt;br /&gt;                obj &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.getItself(obj);&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                count &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.abs(count) &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                target &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; target &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;?&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt; : (target &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;100&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;?&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;100&lt;/span&gt;&lt;span style="color: #000000;"&gt; : target;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; init &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; document.all &lt;/span&gt;&lt;span style="color: #000000;"&gt;?&lt;/span&gt;&lt;span style="color: #000000;"&gt; obj.filters.alpha.opacity : window.getComputedStyle(obj, &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;).opacity &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;100&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                Func &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Func &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; Tween.Linear;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; opr &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; flag &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; setInterval(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;() {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (currentCount &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; count) {&lt;br /&gt;                        clearInterval(flag);&lt;br /&gt;                    }&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br /&gt;                        currentCount&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; tmp &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Func(init, target, currentCount, count);&lt;br /&gt;                        opr.SetOpacity(obj, tmp);&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;清除小数点的误差&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (Math.abs(tmp &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; target) &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br /&gt;                            opr.SetOpacity(obj, target);&lt;br /&gt;                        }&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;                , &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.timer);&lt;br /&gt;            },&lt;br /&gt;            resize: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(obj, targetPos, count, Func) {&lt;br /&gt;                obj &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.getItself(obj);&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                count &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.abs(count) &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; { x: obj.offsetWidth, y: obj.offsetHeight }&lt;br /&gt;                Func &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Func &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; Tween.Linear;&lt;br /&gt;                targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; { x: targetPos.x &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;?&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt; : targetPos.x, y: targetPos.y &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;?&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt; : targetPos.y }&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; flag &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; setInterval(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;() {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (currentCount &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; count) {&lt;br /&gt;                        clearInterval(flag);&lt;br /&gt;                    }&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br /&gt;                        currentCount&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; tmpX &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Func(initPos.x, targetPos.x, currentCount, count);&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; tmpY &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Func(initPos.y, targetPos.y, currentCount, count);&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;width值不能小于0，但是算法返回值有可能出现负值&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;try&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br /&gt;                            obj.style.width &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; tmpX &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;px&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                            obj.style.height &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; tmpY &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;px&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                        }&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;catch&lt;/span&gt;&lt;span style="color: #000000;"&gt; (e) {&lt;br /&gt;                        }&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;清除小数点的误差&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (Math.abs(tmpX &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos.x) &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br /&gt;                            obj.style.width &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos.x &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;px&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                        }&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (Math.abs(tmpY &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos.y) &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br /&gt;                            obj.style.height &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos.y &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;px&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                        }&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;                , &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.timer);&lt;br /&gt;            },&lt;br /&gt;            move: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(obj, targetPos, count, Func) {&lt;br /&gt;                obj &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.getItself(obj);&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                count &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.abs(count) &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; elPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.getElementPos(obj);&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; { x: elPos.x, y: elPos.y }&lt;br /&gt;                Func &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Func &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; Tween.Linear;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; flag &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; setInterval(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;() {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (currentCount &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; count) {&lt;br /&gt;                        clearInterval(flag);&lt;br /&gt;                    }&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br /&gt;                        currentCount&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; tmpX &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Func(initPos.x, targetPos.x, currentCount, count);&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; tmpY &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Func(initPos.y, targetPos.y, currentCount, count);&lt;br /&gt;                        obj.style.left &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; tmpX &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;px&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                        obj.style.top &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; tmpY &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;px&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;清除小数点的误差&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (Math.abs(tmpX &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos.x) &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br /&gt;                            obj.style.left &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos.x &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;px&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                        }&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (Math.abs(tmpY &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos.y) &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br /&gt;                            obj.style.top &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos.y &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;px&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                        }&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;                , &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.timer);&lt;br /&gt;            },&lt;br /&gt;            getElementPos: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(el) {&lt;br /&gt;                el &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.getItself(el);&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; _x &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;, _y &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;do&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br /&gt;                    _x &lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt; el.offsetLeft;&lt;br /&gt;                    _y &lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt; el.offsetTop;&lt;br /&gt;                } &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;while&lt;/span&gt;&lt;span style="color: #000000;"&gt; (el &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; el.offsetParent);&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; { x: _x, y: _y };&lt;br /&gt;            },&lt;br /&gt;            getItself: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(id) {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000;"&gt; id &lt;/span&gt;&lt;span style="color: #000000;"&gt;?&lt;/span&gt;&lt;span style="color: #000000;"&gt; document.getElementById(id) : id;&lt;br /&gt;            }&lt;br /&gt;        }&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;其中fade方法是实现渐变效果的，resize方法是改变对象尺寸大小的，move方法是实现移动效果的。首先看下move方法，其他2个方法实现其实是类似的。&lt;/p&gt;&lt;p&gt;move方法的调用：Animation.move('divObj',{x:500,y:500},100,Tween.Quart.easeInOut); 第一个参数是移动的对象，第二个参数是移动的目标坐标，第三个参数是一共执行多少次移位，即移动时间内一共的帧数，即执行多少次，第4个参数是可选参数，指定Tween具体算法，若不加，则默认采用Tween.Linear。&lt;/p&gt;&lt;p&gt;移动问题的关键就是每次移位后，应该将移动对象定位到什么位置，即其left和top是多少。来看一个简单的数学题，当我们知道了一个点的起始位置initPos和终点位置targetPos，要求在count次移动后达到终点，该点为匀速运动，求第currentCount次移动后该点位置在哪里？显然的位置在：（targetPos - initPos）*（currentCount/count）+initPos。这个就是Tween.Linear算法。当这个点不是匀速运动时，就是Tween的其他算法。Tween来自Flash的AS，你可以参考&lt;a href="http://www.robertpenner.com/easing/easing_demo.html"&gt;http://www.robertpenner.com/easing/easing_demo.html&lt;/a&gt;去查看Tween各种算法的运动效果，也可以参考cloudgamer的一篇文章&lt;a href="http://www.cnblogs.com/cloudgamer/archive/2009/01/06/tween.html"&gt;JavaScript Tween算法及缓动效果&lt;/a&gt;。相比下，我将Tween各种算法的传入参数稍改了下，将移动的总距离的运算放到了Tween算法内部，然后最后个参数是作为总共计算次数理解的，而不是持续时间。我本来是想用持续时间运算的，但是发现还是要将持续时间除以10毫秒得到总次数，然后参与运算，总次数还可能非整数，有误差，所以我干脆直接传总次数过来，当然你也可以改成持续时间。那在应用时，究竟移动次数应该写多少，在每次间隔10毫秒进行移动下，次数越多，耗时越长。譬如采用Tween.Linear计算移动位置时，大概是耗时count*10ms的1.5倍，譬如写100，就是100*10*1.5=1.5s左右，这个多出来的0.5倍是Tween.Linear计算花费的时间。贴上改写后的Tween。&amp;nbsp;&lt;/p&gt;&lt;div onclick="cnblogs_code_show('73598d00-5f03-419e-856c-3f5fc43e7102')" style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" class="code_img_closed" id="code_img_closed_73598d00-5f03-419e-856c-3f5fc43e7102" /&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" onclick="cnblogs_code_hide('73598d00-5f03-419e-856c-3f5fc43e7102',event)" class="code_img_opened" id="code_img_opened_73598d00-5f03-419e-856c-3f5fc43e7102" style="display: none;" /&gt;&lt;div class="cnblogs_code_hide" id="cnblogs_code_open_73598d00-5f03-419e-856c-3f5fc43e7102"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;        t:currentCount 当前执行第t次&lt;br /&gt;        b:initPos 初始值&lt;br /&gt;        c:targetPos - initPos 发生偏移的距离值&lt;br /&gt;        d:count 一共执行d次&lt;br /&gt;        效果：http://www.robertpenner.com/easing/easing_demo.html &lt;br /&gt;        JavaScript Tween算法及缓动效果 http://www.cnblogs.com/cloudgamer/archive/2009/01/06/tween.html&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; Tween &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br /&gt;            Linear: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count) {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; d &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;            },&lt;br /&gt;            Quad: {&lt;br /&gt;                easeIn: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;= d) * t + b;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                },&lt;br /&gt;                easeOut: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;c &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;= d) * (t - 2) + b;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                },&lt;br /&gt;                easeInOut: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; ((t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;= d &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;c &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; ((&lt;/span&gt;&lt;span style="color: #000000;"&gt;--&lt;/span&gt;&lt;span style="color: #000000;"&gt;t) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                }&lt;br /&gt;            },&lt;br /&gt;            Cubic: {&lt;br /&gt;                easeIn: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;= d) * t * t + b;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                },&lt;br /&gt;                easeOut: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; ((t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; d &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                },&lt;br /&gt;                easeInOut: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; ((t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;= d &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; ((t &lt;/span&gt;&lt;span style="color: #000000;"&gt;-=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                }&lt;br /&gt;            },&lt;br /&gt;            Quart: {&lt;br /&gt;                easeIn: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;= d) * t * t * t + b;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                },&lt;br /&gt;                easeOut: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;c &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; ((t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; d &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                },&lt;br /&gt;                easeInOut: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; ((t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;= d &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;c &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; ((t &lt;/span&gt;&lt;span style="color: #000000;"&gt;-=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                }&lt;br /&gt;            },&lt;br /&gt;            Quint: {&lt;br /&gt;                easeIn: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;= d) * t * t * t * t + b;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                },&lt;br /&gt;                easeOut: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; ((t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; d &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                },&lt;br /&gt;                easeInOut: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; ((t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;= d &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; ((t &lt;/span&gt;&lt;span style="color: #000000;"&gt;-=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                }&lt;br /&gt;            },&lt;br /&gt;            Sine: {&lt;br /&gt;                easeIn: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;c &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.cos(t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; d &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (Math.PI &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;)) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                },&lt;br /&gt;                easeOut: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.sin(t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; d &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (Math.PI &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;)) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                },&lt;br /&gt;                easeInOut: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;c &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (Math.cos(Math.PI &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; d) &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                }&lt;br /&gt;            },&lt;br /&gt;            Expo: {&lt;br /&gt;                easeIn: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;?&lt;/span&gt;&lt;span style="color: #000000;"&gt; b : c &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.pow(&lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #000000;"&gt;10&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; d &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;)) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                },&lt;br /&gt;                easeOut: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; d) &lt;/span&gt;&lt;span style="color: #000000;"&gt;?&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; c : c &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;Math.pow(&lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;10&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; d) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                },&lt;br /&gt;                easeInOut: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; d) &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; c;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; ((t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;= d &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.pow(&lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #000000;"&gt;10&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;)) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;Math.pow(&lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;10&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;--&lt;/span&gt;&lt;span style="color: #000000;"&gt;t) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                }&lt;br /&gt;            },&lt;br /&gt;            Circ: {&lt;br /&gt;                easeIn: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;c &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (Math.sqrt(&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;= d) * t) - 1) + b;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                },&lt;br /&gt;                easeOut: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.sqrt(&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; d &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                },&lt;br /&gt;                easeInOut: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; ((t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;= d &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;c &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (Math.sqrt(&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t) &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (Math.sqrt(&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;-=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                }&lt;br /&gt;            },&lt;br /&gt;            Elastic: {&lt;br /&gt;                easeIn: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count, a, p) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; b; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; ((t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;= d) == 1) return b + c; if (!p) p = d * .3;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;!&lt;/span&gt;&lt;span style="color: #000000;"&gt;a &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; a &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.abs(c)) { a &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; c; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; s &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; p &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;4&lt;/span&gt;&lt;span style="color: #000000;"&gt;; }&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; s &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; p &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.PI) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.asin(c &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; a);&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;(a &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.pow(&lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #000000;"&gt;10&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;-=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;)) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.sin((t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; d &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; s) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.PI) &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; p)) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                },&lt;br /&gt;                easeOut: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count, a, p) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; b; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; ((t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;= d) == 1) return b + c; if (!p) p = d * .3;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;!&lt;/span&gt;&lt;span style="color: #000000;"&gt;a &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; a &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.abs(c)) { a &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; c; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; s &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; p &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;4&lt;/span&gt;&lt;span style="color: #000000;"&gt;; }&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; s &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; p &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.PI) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.asin(c &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; a);&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; (a &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.pow(&lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;10&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.sin((t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; d &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; s) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.PI) &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; p) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b);&lt;br /&gt;                },&lt;br /&gt;                easeInOut: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count, a, p) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; b; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; ((t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;= d &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; c; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;!&lt;/span&gt;&lt;span style="color: #000000;"&gt;p) p &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; d &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (.&lt;/span&gt;&lt;span style="color: #000000;"&gt;3&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1.5&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;!&lt;/span&gt;&lt;span style="color: #000000;"&gt;a &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; a &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.abs(c)) { a &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; c; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; s &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; p &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;4&lt;/span&gt;&lt;span style="color: #000000;"&gt;; }&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; s &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; p &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.PI) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.asin(c &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; a);&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;.&lt;/span&gt;&lt;span style="color: #000000;"&gt;5&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (a &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.pow(&lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #000000;"&gt;10&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;-=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;)) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.sin((t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; d &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; s) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.PI) &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; p)) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; a &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.pow(&lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;10&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;-=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;)) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.sin((t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; d &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; s) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.PI) &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; p) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; .&lt;/span&gt;&lt;span style="color: #000000;"&gt;5&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                }&lt;br /&gt;            },&lt;br /&gt;            Back: {&lt;br /&gt;                easeIn: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count, s) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (s &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; undefined) s &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1.70158&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;= d) * t * ((s + 1) * t - s) + b;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                },&lt;br /&gt;                easeOut: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count, s) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (s &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; undefined) s &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1.70158&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; ((t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; d &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; ((s &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; s) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                },&lt;br /&gt;                easeInOut: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count, s) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (s &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; undefined) s &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1.70158&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; ((t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;= d &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (((s &lt;/span&gt;&lt;span style="color: #000000;"&gt;*=&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;1.525&lt;/span&gt;&lt;span style="color: #000000;"&gt;)) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; s)) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; ((t &lt;/span&gt;&lt;span style="color: #000000;"&gt;-=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (((s &lt;/span&gt;&lt;span style="color: #000000;"&gt;*=&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;1.525&lt;/span&gt;&lt;span style="color: #000000;"&gt;)) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; s) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                }&lt;br /&gt;            },&lt;br /&gt;            Bounce: {&lt;br /&gt;                easeIn: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; Tween.Bounce.easeOut(d &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; t, &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;, c, d) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                },&lt;br /&gt;                easeOut: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; ((t &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;= d) &amp;lt; (1 &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2.75&lt;/span&gt;&lt;span style="color: #000000;"&gt;)) {&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;7.5625&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                    } &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2.75&lt;/span&gt;&lt;span style="color: #000000;"&gt;)) {&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;7.5625&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;-=&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;1.5&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2.75&lt;/span&gt;&lt;span style="color: #000000;"&gt;)) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; .&lt;/span&gt;&lt;span style="color: #000000;"&gt;75&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                    } &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;2.5&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2.75&lt;/span&gt;&lt;span style="color: #000000;"&gt;)) {&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;7.5625&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;-=&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;2.25&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2.75&lt;/span&gt;&lt;span style="color: #000000;"&gt;)) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; .&lt;/span&gt;&lt;span style="color: #000000;"&gt;9375&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                    } &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;7.5625&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;-=&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;2.625&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2.75&lt;/span&gt;&lt;span style="color: #000000;"&gt;)) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; t &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; .&lt;/span&gt;&lt;span style="color: #000000;"&gt;984375&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                    }&lt;br /&gt;                },&lt;br /&gt;                easeInOut: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(initPos, targetPos, currentCount, count) {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, c &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; targetPos &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; initPos, t &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; currentCount, d &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (t &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; d &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; Tween.Bounce.easeIn(t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;, c, d) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; .&lt;/span&gt;&lt;span style="color: #000000;"&gt;5&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; Tween.Bounce.easeOut(t &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; d, &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;, c, d) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; .&lt;/span&gt;&lt;span style="color: #000000;"&gt;5&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; .&lt;/span&gt;&lt;span style="color: #000000;"&gt;5&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;相比move方法，fade方法是用Tween算法去计算透明度，而resize方法是用Tween算法去计算width和height，没有大的区别。利用这3个特效，一些简单的动画都能实现了。如果某对象要在移动过程中同时改变大小和设置透明度，只要三个方法连续写下来即可。如：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;input &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="button"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Move&amp;amp;Resize&amp;amp;SetOpacity"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; onclick&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Animation.fade('divObj',50,100);Animation.resize('divObj',{x:300,y:200},100);Animation.move('divObj',{x:100,y:100},100);"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;（ps:若无特别声明，此博客所有例子均可在IE/FF/Chrome中运行）&lt;/p&gt;&lt;p&gt;&lt;a href="http://files.cnblogs.com/ljchow/animation.rar" style="color: #ff0000;"&gt;点击下载&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/ljchow/aggbug/1754352.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/ljchow/archive/2010/06/09/1754352.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
