<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ria之家--RIA三部曲：jquery、ext、flex &#187; jquery</title>
	<atom:link href="http://www.36ria.com/category/jq/feed" rel="self" type="application/rss+xml" />
	<link>http://www.36ria.com</link>
	<description>RIA三部曲：jquery、ext、flex</description>
	<lastBuildDate>Wed, 08 Feb 2012 12:19:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>15个相当不错的jquery技巧</title>
		<link>http://www.36ria.com/4391</link>
		<comments>http://www.36ria.com/4391#comments</comments>
		<pubDate>Fri, 15 Jul 2011 13:18:42 +0000</pubDate>
		<dc:creator>明河</dc:creator>
				<category><![CDATA[jquery教程]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=4391</guid>
		<description><![CDATA[今天在tutorialzine发现一篇关于jquery使用技巧的，相当不错，翻译分享给各位。 1.使用最新的jquery版本 明河觉得这个建议有待商榷，虽然越新的jquery版本性能上更加优秀，但是有些方法的变迁还是会导致一些bug，比如从1.4.2到1.5时很多朋友就抱怨ajax上出现问题了。明河的建议是旧的页面的jquery升级需谨慎，新项目可以大胆的使用jquery新版本。 还有个建议是使用google的cdn上的jquer......]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.36ria.com/4391/jquery-15-tips" rel="attachment wp-att-4394"><img src="http://www.36ria.com/wp-content/uploads/2011/07/jquery-15-tips.png" alt="" title="jquery-15-tips" width="680" height="200" class="alignnone size-full wp-image-4394" /></a><br />
今天在<a href="http://tutorialzine.com/2011/06/15-powerful-jquery-tips-and-tricks-for-developers/">tutorialzine</a>发现一篇关于jquery使用技巧的，相当不错，翻译分享给各位。</p>
<h4>1.使用最新的jquery版本</h4>
<p>明河觉得这个建议有待商榷，虽然越新的jquery版本性能上更加优秀，但是有些方法的变迁还是会导致一些bug，比如从1.4.2到1.5时很多朋友就抱怨ajax上出现问题了。明河的建议是旧的页面的jquery升级需谨慎，新项目可以大胆的使用jquery新版本。<br />
还有个建议是使用google的cdn上的jquery文件，加载速度更快。猛击<a href="http://code.google.com/intl/zh-CN/apis/libraries/devguide.html" target="_blank">Google Libraries API</a> 进入查看。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">&lt;!-- Include a specific version of jQuery --&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">script</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: #ffa500;">&lt;!-- Include the latest version in the 1.6 branch --&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">script</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span></li></ol></div>
<h4>2.保持选择器的简单</h4>
<p>这个建议明河非常赞同，有很多朋友不喜欢给元素增加样式或id，希望保持html的简洁，使用jquery强大的选择器去检索元素，这不是好的习惯。首先越复杂的选择器，遍历的效率越低，这是显而易见的，最高效率无疑是使用原生的<strong>getElementById()</strong>；其次，复杂的选择器将标签名称和层级结构固化在里面，假如你的html结构发生了改变，或标签发生了改变，都直接造成检索失败。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">li[data-selected=&quot;true&quot;] a</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// Fancy, but slow</span></li>
<li><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">li.selected a</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// Better</span></li>
<li><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#elem</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// Best</span></li></ol></div>
<p>访问DOM，是javascript最耗资源和性能的部分，所以尽量<strong>避免复杂或重复的遍历DOM</strong>。<br />
避免重复遍历DOM的方法就是将$()检索的元素存储到变量，比如下面的代码：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">buttons</span><span style="color: Gray;"> = $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#navigation a.button</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #ffa500;">// 使用$前缀来标示jquery对象，是非常好的习惯，推荐使用。</span></li>
<li><span style="color: Green;">var</span><span style="color: Gray;"> $</span><span style="color: Blue;">buttons</span><span style="color: Gray;"> = $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#navigation a.button</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<p>jquery选择器支持大部分的css3伪类方法，像<strong>:visible</strong>, <strong>:hidden</strong>, <strong>:animated</strong>，虽然很便利，但请慎用，因为当你使用伪类选择器的时候，jQuery不得不使用<strong>querySelectorAll()</strong>，性能的损耗更大。</p>
<h4>3.jQuery对象作为数组处理</h4>
<p>jQuery对象定义了length属性，当使用数组的形式操作时候返回其实是DOM元素而不是子jQuery对象，比如下面代码。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">// Selecting all the navigation buttons:</span></li>
<li><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">buttons</span><span style="color: Gray;"> = $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#navigation a.button</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 遍历buttons对象</span></li>
<li><span style="color: Green;">for</span><span style="color: Olive;">(</span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">i</span><span style="color: Gray;">=</span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span><span style="color: Blue;">i</span><span style="color: Gray;">&lt;</span><span style="color: Blue;">buttons</span><span style="color: Gray;">.</span><span style="color: Blue;">length</span><span style="color: Gray;">;</span><span style="color: Blue;">i</span><span style="color: Gray;">++</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">console</span><span style="color: Gray;">.</span><span style="color: Blue;">log</span><span style="color: Olive;">(</span><span style="color: Blue;">buttons</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">])</span><span style="color: Gray;">;&nbsp; &nbsp; </span><span style="color: #ffa500;">// 是DOM元素，而不是jQuery对象！</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// We can even slice it:</span></li>
<li><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">firstFour</span><span style="color: Gray;"> = </span><span style="color: Blue;">buttons</span><span style="color: Gray;">.</span><span style="color: Blue;">slice</span><span style="color: Olive;">(</span><span style="color: Maroon;">0</span><span style="color: Gray;">,</span><span style="color: Maroon;">4</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<p>根据实验，使用for或while循环，执行效率比$.each()来的高。详细测试可以看<a href="http://jsfiddle.net/martinaglv/NcRsV/" target="_blank">several times faster</a>。<br />
使用length属性来检查元素存在性：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Blue;">buttons</span><span style="color: Olive;">){</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// This is always true</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// Do something</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Blue;">buttons</span><span style="color: Gray;">.</span><span style="color: Blue;">length</span><span style="color: Olive;">){</span><span style="color: Gray;">&nbsp;</span><span style="color: #ffa500;">// True only if buttons contains elements</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// Do something</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<h4>4.selector属性</h4>
<p>jQuery对象都带有一个selector属性，用于获取选择器名称，比如：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#container li:first-child</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">selector</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// #container li:first-child</span></li>
<li><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#container li</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">filter</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">:first-child</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">selector</span><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// #container li.filter(:first-child)</span></li></ol></div>
<p>留意第二行代码，selector返回的是获取的元素完整的选择器。<br />
这个属性常用于编写jquery插件的时候。</p>
<h4>5.创建一个空的jQuery对象</h4>
<p>这种情况应用场景不多，当你需要先创建个空的jQuery对象，然后使用<a href="http://api.jquery.com/add/" target="_blank">add()</a>方法向此对象注入jQuery对象时会用到。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">container</span><span style="color: Gray;"> = $</span><span style="color: Olive;">([])</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">container</span><span style="color: Gray;">.</span><span style="color: Blue;">add</span><span style="color: Olive;">(</span><span style="color: Blue;">another_element</span><span style="color: Olive;">)</span><span style="color: Gray;">;)</span></li></ol></div>
<h4>6.选择随机元素</h4>
<p>应用场景不多，举个例子，现在你需要随机给li增加一个red的class。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Gray;">$</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">random</span><span style="color: Gray;"> = </span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; $.</span><span style="color: Blue;">expr</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">:</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;">.</span><span style="color: Blue;">random</span><span style="color: Gray;"> = </span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Blue;">a</span><span style="color: Gray;">, </span><span style="color: Blue;">i</span><span style="color: Gray;">, </span><span style="color: Blue;">m</span><span style="color: Gray;">, </span><span style="color: Blue;">r</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Blue;">i</span><span style="color: Gray;"> == </span><span style="color: Maroon;">0</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">random</span><span style="color: Gray;"> = </span><span style="color: Teal;">Math</span><span style="color: Gray;">.</span><span style="color: Blue;">floor</span><span style="color: Olive;">(</span><span style="color: Teal;">Math</span><span style="color: Gray;">.</span><span style="color: Blue;">random</span><span style="color: Olive;">()</span><span style="color: Gray;"> * </span><span style="color: Blue;">r</span><span style="color: Gray;">.</span><span style="color: Blue;">length</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">i</span><span style="color: Gray;"> == </span><span style="color: Blue;">random</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">})(</span><span style="color: Blue;">jQuery</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">li:random</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">addClass</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">glow</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<p>需要扩展jquery的选择器，这段代码很好的演示了<strong>jQuery.expr</strong>的用法。</p>
<h4>7.使用css钩子</h4>
<p><a href="http://api.jquery.com/jQuery.cssHooks/" target="_blank">jQuery.cssHooks</a>是1.4.3新增的方法，用的不估计不多，当你定义新的CSS Hooks时实际上定义的是getter和setter方法，举个例子，border-radius这个圆角属性想要成功应用于firefox、webkit等浏览器，需要增加属性前缀，比如-moz-border-radius和-webkit-border-radius。你可以通过定义CSS Hooks将其封装成统一的接口borderRadius，而不是一一设置css属性。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$.</span><span style="color: Blue;">cssHooks</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">borderRadius</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; </span><span style="color: Blue;">get</span><span style="color: Gray;">: </span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Blue;">elem</span><span style="color: Gray;">, </span><span style="color: Blue;">computed</span><span style="color: Gray;">, </span><span style="color: Blue;">extra</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; </span><span style="color: #ffa500;">// Depending on the browser, read the value of</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// -moz-border-radius, -webkit-border-radius or border-radius</span></li>
<li><span style="color: Gray;">&amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; </span><span style="color: Olive;">}</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; </span><span style="color: Blue;">set</span><span style="color: Gray;">: </span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Blue;">elem</span><span style="color: Gray;">, </span><span style="color: Blue;">value</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; </span><span style="color: #ffa500;">// Set the appropriate CSS3 property</span></li>
<li><span style="color: Gray;">&amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// Use it without worrying which property the browser actually understands:</span></li>
<li><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#rect</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">css</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">borderRadius</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Maroon;">5</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<h4>8.使用自定义的Easing（缓动动画效果）函数</h4>
<p><a href="http://tutorialzine.com/2011/06/15-powerful-jquery-tips-and-tricks-for-developers/" target="_blank">easing plugin</a>是用的非常多的函数，可以实现不少华丽的效果。当内置的缓动效果无法满足你的需求时，还可以自定义缓动函数。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$.</span><span style="color: Blue;">easing</span><span style="color: Gray;">.</span><span style="color: Blue;">easeInOutQuad</span><span style="color: Gray;"> = </span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Blue;">x</span><span style="color: Gray;">, </span><span style="color: Blue;">t</span><span style="color: Gray;">, </span><span style="color: Blue;">b</span><span style="color: Gray;">, </span><span style="color: Blue;">c</span><span style="color: Gray;">, </span><span style="color: Blue;">d</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">((</span><span style="color: Blue;">t</span><span style="color: #8b0000;">/</span><span style="color: Red;">=d</span><span style="color: #8b0000;">/</span><span style="color: Maroon;">2</span><span style="color: Olive;">)</span><span style="color: Gray;"> &lt; </span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">return</span><span style="color: Gray;"> </span><span style="color: Blue;">c</span><span style="color: #8b0000;">/</span><span style="color: Red;">2*t*t + b;</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; return -c</span><span style="color: #8b0000;">/</span><span style="color: Maroon;">2</span><span style="color: Gray;"> * </span><span style="color: Olive;">((</span><span style="color: Gray;">--</span><span style="color: Blue;">t</span><span style="color: Olive;">)</span><span style="color: Gray;">*</span><span style="color: Olive;">(</span><span style="color: Blue;">t</span><span style="color: Gray;">-</span><span style="color: Maroon;">2</span><span style="color: Olive;">)</span><span style="color: Gray;"> - </span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span><span style="color: Gray;"> + </span><span style="color: Blue;">b</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// To use it:</span></li>
<li><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#elem</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">animate</span><span style="color: Olive;">({</span><span style="color: Blue;">width</span><span style="color: Gray;">:</span><span style="color: Maroon;">200</span><span style="color: Olive;">}</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">slow</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">easeInOutQuad</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<h4>9.$.proxy()的使用</h4>
<p>关于$.proxy()，明河曾经详细介绍过，传送门在此<a href="http://www.36ria.com/1372" target="_blank">《jquery1.4教程三：新增方法教程（3）》</a>。<br />
jquery有个让人头疼的地方，回调函数过多，上下文this总是在变化着，有时候我们需要控制this的指向，这时候就需要$.proxy()方法。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Gray;"> </span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">panel</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">style</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">display:none</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">button</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">Close</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">button</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li></ol></div>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#panel</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">fadeIn</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// this points to #panel</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#panel button</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">click</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// this points to the button</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">fadeOut</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li></ol></div>
<p>嵌套的二个回调函数this指向是不同的！现在我们希望this的指向是#panel的元素。代码如下：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#panel</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">fadeIn</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// Using $.proxy to bind this:</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#panel button</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">click</span><span style="color: Olive;">(</span><span style="color: Gray;">$.</span><span style="color: Blue;">proxy</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// this points to #panel</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">fadeOut</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">,</span><span style="color: Green;">this</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li></ol></div>
<h4>10.快速获取节点数</h4>
<p>这是个常用的技巧，代码如下：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">console</span><span style="color: Gray;">.</span><span style="color: Blue;">log</span><span style="color: Olive;">(</span><span style="color: Gray;"> $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">*</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">length</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<h4>11.构建个jquery插件</h4>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Gray;">$</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; $.</span><span style="color: Blue;">fn</span><span style="color: Gray;">.</span><span style="color: Blue;">yourPluginName</span><span style="color: Gray;"> = </span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// Your code goes here</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">this</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">})(</span><span style="color: Blue;">jQuery</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<p>关于jquery插件的构建，明河曾发过系列教程，传送门：<a href="http://www.36ria.com/2765" title="制作jquery文字提示插件—jquery插件实战教程（1）" target="_blank">制作jquery文字提示插件—jquery插件实战教程（1）</a>。<br />
这里就不再详述。</p>
<h4>12.设置ajax全局事件</h4>
<p>关于ajax全局事件，明河曾发过完整的介绍文章，传送门：《<a href="http://www.36ria.com/2882" title="jquery的ajax全局事件详解—明河谈jquery" target="_blank">jquery的ajax全局事件详解—明河谈jquery</a>》。</p>
<h4>13.延迟动画</h4>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">// This is wrong:</span></li>
<li><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#elem</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">animate</span><span style="color: Olive;">({</span><span style="color: Blue;">width</span><span style="color: Gray;">:</span><span style="color: Maroon;">200</span><span style="color: Olive;">}</span><span style="color: Gray;">,</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">setTimeout</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#elem</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">animate</span><span style="color: Olive;">({</span><span style="color: Blue;">marginTop</span><span style="color: Gray;">:</span><span style="color: Maroon;">100</span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">,</span><span style="color: Maroon;">2000</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// Do it like this:</span></li>
<li><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#elem</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">animate</span><span style="color: Olive;">({</span><span style="color: Blue;">width</span><span style="color: Gray;">:</span><span style="color: Maroon;">200</span><span style="color: Olive;">})</span><span style="color: Gray;">.</span><span style="color: Blue;">delay</span><span style="color: Olive;">(</span><span style="color: Maroon;">2000</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">animate</span><span style="color: Olive;">({</span><span style="color: Blue;">marginTop</span><span style="color: Gray;">:</span><span style="color: Maroon;">100</span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li></ol></div>
<p>当存在多个animate动画时，如何处理动画的执行顺序是个烦心事，原文作者是建议使用<strong>delay()</strong>函数，如上面的代码，但明河的建议是使用<strong>queue()</strong>方法，因为delay你要考虑延迟多少时间，而queue没有这个问题，进入队列的函数会一个个顺序执行。可以看明河以前的文章<a href="http://www.36ria.com/8" title="queue和dequeue—明河谈jquery" target="_blank">queue和dequeue—明河谈jquery</a>。</p>
<h4>15.jquery的本地存储</h4>
<p>本地存储在现在web应用中使用越来越频繁，jquery有个专门用于本地存储的插件叫<a href="http://www.jstorage.info/" target="_blank">$.jStorage jQuery plugin</a>。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">// Check if &quot;key&quot; exists in the storage</span></li>
<li><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">value</span><span style="color: Gray;"> = $.</span><span style="color: Blue;">jStorage</span><span style="color: Gray;">.</span><span style="color: Blue;">get</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">key</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Gray;">!</span><span style="color: Blue;">value</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// if not - load the data from the server</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">value</span><span style="color: Gray;"> = </span><span style="color: Blue;">load_data_from_server</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp;&nbsp; </span><span style="color: #ffa500;">// and save it</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; $.</span><span style="color: Blue;">jStorage</span><span style="color: Gray;">.</span><span style="color: Blue;">set</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">key</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: Blue;">value</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// Use value</span></li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/4391/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>使用javascript生成文件</title>
		<link>http://www.36ria.com/4379</link>
		<comments>http://www.36ria.com/4379#comments</comments>
		<pubDate>Sun, 10 Jul 2011 08:49:04 +0000</pubDate>
		<dc:creator>明河</dc:creator>
				<category><![CDATA[jquery教程]]></category>
		<category><![CDATA[javascript生成文件]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=4379</guid>
		<description><![CDATA[点此查看demo demo中演示了使用javascript生成文件的典型应用：用户可以在输入框输入自定义的数据，然后可以点击保存，将这些数据保存到本地，无需再手动在本地新建个txt然后再复制，帮用户省了一步操作。 还有一个比较典型的应用：系统输出一段密匙给用户，密匙一般很复杂，希望用户可以快速保存到本地，本文的技术就派上用场了。 从理论上来讲，想要单纯依靠javascript......]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.36ria.com/4379/js-generating-files" rel="attachment wp-att-4380"><img src="http://www.36ria.com/wp-content/uploads/2011/07/js-generating-files.png" alt="" title="js-generating-files" width="680" height="200" class="alignnone size-full wp-image-4380" /></a></p>
<ul class="tow-columns clearfix">
<li class="l"><a href="http://www.36ria.com/demo/jquery/generateFile/index.html" class="btn-view-demo" target="_blank">点此查看demo</a></li>
<li class="l"><a href="http://www.36ria.com/wp-content/plugins/download-monitor/download.php?id=220" title="名称：generateFile，下载次数：87，文件大小：5.54 kB" class="btn-download">点此下载</a></li>
</ul>
<p>demo中演示了使用javascript生成文件的典型应用：用户可以在输入框输入自定义的数据，然后可以点击保存，将这些数据保存到本地，无需再手动在本地新建个txt然后再复制，帮用户省了一步操作。<br />
还有一个比较典型的应用：系统输出一段密匙给用户，密匙一般很复杂，希望用户可以快速保存到本地，本文的技术就派上用场了。<br />
从理论上来讲，想要单纯依靠javascript生成文件，是不可能的，目前主流的有二种方案可以实现生成文件功能：1、<strong>javascript+flash</strong>，该方案网上有现成的插件，插件的名字明河忘记了，-_-!明河比较健忘；2、javascript+服务器端语言，这是明河比较推崇的方案，本文的demo采用<strong>javascript+php</strong>实现的，接下来对这个方案，明河进行下简单说明。</p>
<h4>原理简述：</h4>
<p>原理并不复杂，整个流程如下图：<br />
<a href="http://www.36ria.com/4379/flow" rel="attachment wp-att-4382"><img src="http://www.36ria.com/wp-content/uploads/2011/07/flow.png" alt="" title="flow" width="680" height="140" class="alignnone size-full wp-image-4382" /></a></p>
<h4>html代码：</h4>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">form</span><span style="color: Gray;"> </span><span style="color: #00008b;">action</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">./</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">method</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">post</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">h4</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">在下面输入框输入任意文字</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">h4</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">textarea</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">textarea</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">a</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">#</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">blueButton</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">download</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">下载</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">form</span><span style="color: Olive;">&gt;</span></li></ol></div>
<h4>php处理数据，返回文件：</h4>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">&lt;?php</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Green;">empty</span><span style="color: Olive;">(</span><span style="color: #00008b;">$_POST</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">filename</span><span style="color: #8b0000;">'</span><span style="color: Olive;">])</span><span style="color: Gray;"> || </span><span style="color: Green;">empty</span><span style="color: Olive;">(</span><span style="color: #00008b;">$_POST</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">content</span><span style="color: #8b0000;">'</span><span style="color: Olive;">])){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">exit</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #00008b;">$filename</span><span style="color: Gray;"> = </span><span style="color: Blue;">preg_replace</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">/[^a-z0-9\-\_\.]/i</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">''</span><span style="color: Gray;">,</span><span style="color: #00008b;">$_POST</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">filename</span><span style="color: #8b0000;">'</span><span style="color: Olive;">])</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">header</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Cache-Control: </span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">header</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Content-type: text/plain</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">header</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">Content-Disposition: attachment; filename=&quot;</span><span style="color: #8b0000;">'</span><span style="color: Gray;">.</span><span style="color: #00008b;">$filename</span><span style="color: Gray;">.</span><span style="color: #8b0000;">'</span><span style="color: Red;">&quot;</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">echo</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$_POST</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">content</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">?&gt;</span></li></ol></div>
<p>服务器端最关键地就是对header的重写，比如上述代码中的</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">header</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Cache-Control: </span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">header</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Content-type: text/plain</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">header</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">Content-Disposition: attachment; filename=&quot;</span><span style="color: #8b0000;">'</span><span style="color: Gray;">.</span><span style="color: #00008b;">$filename</span><span style="color: Gray;">.</span><span style="color: #8b0000;">'</span><span style="color: Red;">&quot;</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
</ol></div>
<p>服务器端需要二个参数：filename和content，接下来我们来看如何通过脚本异步post过去。<br />
异步post，条件反射地想到ajax，但这里我们借助<strong>iframe</strong>。</p>
<h4>assets/jquery.generateFile.js</h4>
<p><strong>jquery.generateFile.js</strong>这个文件封装了生成文件的方法：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Gray;">$</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// 创建一个jquery插件</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; $.</span><span style="color: Blue;">generateFile</span><span style="color: Gray;"> = </span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Blue;">options</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">options</span><span style="color: Gray;"> = </span><span style="color: Blue;">options</span><span style="color: Gray;"> || </span><span style="color: Olive;">{}</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Gray;">!</span><span style="color: Blue;">options</span><span style="color: Gray;">.</span><span style="color: Blue;">script</span><span style="color: Gray;"> || !</span><span style="color: Blue;">options</span><span style="color: Gray;">.</span><span style="color: Blue;">filename</span><span style="color: Gray;"> || !</span><span style="color: Blue;">options</span><span style="color: Gray;">.</span><span style="color: Blue;">content</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">throw</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">Error</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">参数配置不合法!</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// 创建一个1*1的iframe</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">iframe</span><span style="color: Gray;"> = $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&lt;iframe&gt;</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">width</span><span style="color: Gray;">:</span><span style="color: Maroon;">1</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">height</span><span style="color: Gray;">:</span><span style="color: Maroon;">1</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">frameborder</span><span style="color: Gray;">:</span><span style="color: Maroon;">0</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">css</span><span style="color: Gray;">:</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">display</span><span style="color: Gray;">:</span><span style="color: #8b0000;">'</span><span style="color: Red;">none</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">.</span><span style="color: Blue;">appendTo</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">body</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">formHTML</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">&lt;form action=&quot;&quot; method=&quot;post&quot;&gt;</span><span style="color: #8b0000;">'</span><span style="color: Gray;">+</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #8b0000;">'</span><span style="color: Red;">&lt;input type=&quot;hidden&quot; name=&quot;filename&quot; /&gt;</span><span style="color: #8b0000;">'</span><span style="color: Gray;">+</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #8b0000;">'</span><span style="color: Red;">&lt;input type=&quot;hidden&quot; name=&quot;content&quot; /&gt;</span><span style="color: #8b0000;">'</span><span style="color: Gray;">+</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #8b0000;">'</span><span style="color: Red;">&lt;/form&gt;</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// 加个延迟的原因是：给IE一些创建DOM的时间</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">setTimeout</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// iframe的document中的body元素</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">body</span><span style="color: Gray;"> = </span><span style="color: Olive;">(</span><span style="color: Blue;">iframe</span><span style="color: Gray;">.</span><span style="color: Blue;">prop</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">contentDocument</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> !== </span><span style="color: Blue;">undefined</span><span style="color: Olive;">)</span><span style="color: Gray;"> ?</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">iframe</span><span style="color: Gray;">.</span><span style="color: Blue;">prop</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">contentDocument</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">body</span><span style="color: Gray;"> :</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">iframe</span><span style="color: Gray;">.</span><span style="color: Blue;">prop</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">document</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">body</span><span style="color: Gray;">;&nbsp; &nbsp; </span><span style="color: #ffa500;">// IE</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">body</span><span style="color: Gray;"> = $</span><span style="color: Olive;">(</span><span style="color: Blue;">body</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// 向iframe添加内容</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">body</span><span style="color: Gray;">.</span><span style="color: Blue;">html</span><span style="color: Olive;">(</span><span style="color: Blue;">formHTML</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">form</span><span style="color: Gray;"> = </span><span style="color: Blue;">body</span><span style="color: Gray;">.</span><span style="color: Blue;">find</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">form</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">form</span><span style="color: Gray;">.</span><span style="color: Blue;">attr</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">action</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">options</span><span style="color: Gray;">.</span><span style="color: Blue;">script</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">form</span><span style="color: Gray;">.</span><span style="color: Blue;">find</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">input[name=filename]</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">val</span><span style="color: Olive;">(</span><span style="color: Blue;">options</span><span style="color: Gray;">.</span><span style="color: Blue;">filename</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">form</span><span style="color: Gray;">.</span><span style="color: Blue;">find</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">input[name=content]</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">val</span><span style="color: Olive;">(</span><span style="color: Blue;">options</span><span style="color: Gray;">.</span><span style="color: Blue;">content</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//提交表单</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">form</span><span style="color: Gray;">.</span><span style="color: Blue;">submit</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">,</span><span style="color: Maroon;">50</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Olive;">})(</span><span style="color: Blue;">jQuery</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<p>主要有如下几个关键步骤：</p>
<h5>1.生成个iframe</h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">// 创建一个1*1的iframe</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">iframe</span><span style="color: Gray;"> = $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&lt;iframe&gt;</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">width</span><span style="color: Gray;">:</span><span style="color: Maroon;">1</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">height</span><span style="color: Gray;">:</span><span style="color: Maroon;">1</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">frameborder</span><span style="color: Gray;">:</span><span style="color: Maroon;">0</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">css</span><span style="color: Gray;">:</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">display</span><span style="color: Gray;">:</span><span style="color: #8b0000;">'</span><span style="color: Red;">none</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">.</span><span style="color: Blue;">appendTo</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">body</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<h5>2.向iframe添加一个表单</h5>
<p>表单结构如下：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">formHTML</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">&lt;form action=&quot;&quot; method=&quot;post&quot;&gt;</span><span style="color: #8b0000;">'</span><span style="color: Gray;">+</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #8b0000;">'</span><span style="color: Red;">&lt;input type=&quot;hidden&quot; name=&quot;filename&quot; /&gt;</span><span style="color: #8b0000;">'</span><span style="color: Gray;">+</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #8b0000;">'</span><span style="color: Red;">&lt;input type=&quot;hidden&quot; name=&quot;content&quot; /&gt;</span><span style="color: #8b0000;">'</span><span style="color: Gray;">+</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #8b0000;">'</span><span style="color: Red;">&lt;/form&gt;</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;</span></li></ol></div>
<p>将上述html片段加入到iframe中：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">// iframe的document中的body元素</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">body</span><span style="color: Gray;"> = </span><span style="color: Olive;">(</span><span style="color: Blue;">iframe</span><span style="color: Gray;">.</span><span style="color: Blue;">prop</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">contentDocument</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> !== </span><span style="color: Blue;">undefined</span><span style="color: Olive;">)</span><span style="color: Gray;"> ?</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">iframe</span><span style="color: Gray;">.</span><span style="color: Blue;">prop</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">contentDocument</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">body</span><span style="color: Gray;"> :</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">iframe</span><span style="color: Gray;">.</span><span style="color: Blue;">prop</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">document</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">body</span><span style="color: Gray;">;&nbsp; &nbsp; </span><span style="color: #ffa500;">// IE</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">body</span><span style="color: Gray;"> = $</span><span style="color: Olive;">(</span><span style="color: Blue;">body</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// 向iframe添加内容</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">body</span><span style="color: Gray;">.</span><span style="color: Blue;">html</span><span style="color: Olive;">(</span><span style="color: Blue;">formHTML</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<p>这里明河重点提下<strong>prop</strong>方法，这是jquery1.6的新方法哦，这个方法的作用是什么呢？<br />
以前的jquery中，全部使用attr来访问对象的属性，比如取一个图片的alt属性，使用<strong>$(&#8216;#img&#8217;).attr(&#8216;alt&#8217;);</strong><br />
但是在某些时候，比如访问checkbox的<strong>disabled</strong>属性的时候，会有些问题。在有些浏览器里，只要写了disabled就可以，有些则要写：disabled = “disabled”。所以，从1.6开始，jq提供新的方法“prop”来获取这些属性。使用<strong>prop</strong>的时候，返回值是标准属性，true/false，比如<strong>$(&#8216;#checkbox&#8217;).prop(&#8216;disabled&#8217;)</strong>，不会返回 “disabled”或者“”，只会是true/false。当然赋值的时候也是如此。如此，我们便统一了所有操作，无论是从语法上还是语义上。</p>
<h5>3.提交表单</h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">form</span><span style="color: Gray;"> = </span><span style="color: Blue;">body</span><span style="color: Gray;">.</span><span style="color: Blue;">find</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">form</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">form</span><span style="color: Gray;">.</span><span style="color: Blue;">attr</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">action</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">options</span><span style="color: Gray;">.</span><span style="color: Blue;">script</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">form</span><span style="color: Gray;">.</span><span style="color: Blue;">find</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">input[name=filename]</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">val</span><span style="color: Olive;">(</span><span style="color: Blue;">options</span><span style="color: Gray;">.</span><span style="color: Blue;">filename</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">form</span><span style="color: Gray;">.</span><span style="color: Blue;">find</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">input[name=content]</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">val</span><span style="color: Olive;">(</span><span style="color: Blue;">options</span><span style="color: Gray;">.</span><span style="color: Blue;">content</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//提交表单</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">form</span><span style="color: Gray;">.</span><span style="color: Blue;">submit</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li></ol></div>
<h4>初始化插件，生成文件</h4>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#download</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">click</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Blue;">e</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; $.</span><span style="color: Blue;">generateFile</span><span style="color: Olive;">({</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">filename</span><span style="color: Gray;">&nbsp; &nbsp; : </span><span style="color: #8b0000;">'</span><span style="color: Red;">export.txt</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">content</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; : $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">textarea</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">val</span><span style="color: Olive;">()</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">script</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; : </span><span style="color: #8b0000;">'</span><span style="color: Red;">download.php</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">e</span><span style="color: Gray;">.</span><span style="color: Blue;">preventDefault</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/4379/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Validation-Engine—jquery表单验证插件详解</title>
		<link>http://www.36ria.com/4370</link>
		<comments>http://www.36ria.com/4370#comments</comments>
		<pubDate>Sat, 02 Jul 2011 07:33:47 +0000</pubDate>
		<dc:creator>明河</dc:creator>
				<category><![CDATA[jquery插件]]></category>
		<category><![CDATA[jquery表单验证插件]]></category>
		<category><![CDATA[Validation-Engine]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=4370</guid>
		<description><![CDATA[先道个歉，这二月明河工作太忙了，没多少时间更新博客，也很少捣鼓东西了。 （ps:RIA之家的全部demo，明河已经托管到github，如果要下载博客的全部demo，传送门在此：https://github.com/minghe/36ria-demo。） 今天明河将着重向各位朋友介绍个强大的jquery表单验证插件：Validation-Engine，明河在很早之前曾队Validation-Engine进行过介绍，传送门在此《validationEngine中文版 — jquery强大的表单......]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-4371" href="http://www.36ria.com/4370/validation-engine"><img class="alignnone size-full wp-image-4371" title="Validation-Engine" src="http://www.36ria.com/wp-content/uploads/2011/07/Validation-Engine.png" alt="" width="680" height="200" /></a><br />
先道个歉，这二月明河工作太忙了，没多少时间更新博客，也很少捣鼓东西了。<br />
（ps:RIA之家的全部demo，明河已经托管到github，如果要下载博客的全部demo，传送门在此：<a href="https://github.com/minghe/36ria-demo">https://github.com/minghe/36ria-demo</a>。）<br />
今天明河将着重向各位朋友介绍个强大的jquery表单验证插件：<strong>Validation-Engine</strong>，明河在很早之前曾队Validation-Engine进行过介绍，传送门在此<a href="http://www.36ria.com/1645">《validationEngine中文版 — jquery强大的表单验证插件》</a>。那时候的validationEngine版本还是比较早的，目前最新的是2.2，跟以前相比改变了非常多，不少朋友给我留言希望更新下validationEngine的文章。所以写了这篇文章。</p>
<ul class="tow-columns clearfix">
<li class="l"><a href="http://www.36ria.com/demo/jquery/validation-engine-2.2/index.html" class="btn-view-demo" target="_blank">点此查看demo</a></li>
<li class="l"><a href="http://www.36ria.com/wp-content/plugins/download-monitor/download.php?id=219" title="名称：validation-engine-2.2，下载次数：181，文件大小：166.25 kB" class="btn-download">点此下载</a></li>
</ul>
<p>明河已经把验证规则的提示内容翻译成中文了，请看<strong>validation-engine-2.2\js\languages\jquery.validationEngine-cn.js</strong>。关于时间有二处提示没找到地方，目前没做修改。明河的英文太菜，翻译难免词不达意，欢迎纠正，O(∩_∩)O哈！<br />
（ps：时间有限，demo没做翻译，请见谅。）</p>
<h4>Validation-Engine的使用</h4>
<p>Validation-Engine的调用跟旧版没什么太大区别，可以看<a href="http://www.36ria.com/1645">《validationEngine中文版 — jquery强大的表单验证插件》</a>，明河这里不再累述。这里对其中的二个点进行补充：ajax验证和钩子的使用。这二部分相对而言会难些，所以需要着重介绍下。</p>
<h4>如何处理ajax验证？</h4>
<p>典型场景：如何使用Validation-Engine验证用户名或email的存在性？<br />
这个需求在大部分的注册页面都会用到，那如何使用Validation-Engine进行ajax验证呢？<br />
Validation-Engine的ajax验证有二种模式：</p>
<ul>
<li><a href="http://www.position-relative.net/creation/formValidator/demos/demoAjaxInlinePHP.html">Inline</a>：表单元素即时验证，比如失去焦点后触发ajax验证请求</li>
<li><a href="http://www.position-relative.net/creation/formValidator/demos/demoAjaxSubmitPHP.html">Submit</a>：整个表单的验证</li>
</ul>
<h5> inline验证</h5>
<p>inline验证当表单字段的值发生改变时会触发相应的ajax事件，比如用户名的输入框失去焦点后。<br />
想要使用ajax验证，需要你在语言规则文件上加上相应的ajax验证规则，打开<strong>validation-engine-2.2\js\languages\jquery.validationEngine-cn.js</strong>，找到如下代码：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ajaxUserCallPhp</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">: </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">url</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">: </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">phpajax/ajaxValidateFieldUser.php</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// you may want to pass extra data on the ajax call</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">extraData</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">: </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">name=eric</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// if you provide an &quot;alertTextOk&quot;, it will show as a green prompt when the field validates</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">alertTextOk</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">: </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">* 恭喜你，此用户名可以使用</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">alertText</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">: </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">* 该用户名已经存在</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">alertTextLoad</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">: </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">* 正在验证中，请稍等...</span><span style="color: #8b0000;">&quot;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li></ol></div>
<p>上述是一套ajax的验证规则，<strong>url</strong>指向服务器端路径，<strong>alertText</strong>为验证提示，<strong>alertTextLoad</strong>为正在验证时显示的消息。<strong>alertTextOk</strong>即ajax验证成功时显示的消息。<br />
<strong>然后你需要在表单字段上应用上这段规则。</strong></p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">input</span><span style="color: Gray;"> </span><span style="color: #00008b;">value</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">validate[required,custom[onlyLetterNumber],maxSize[20],ajax[ajaxUserCallPhp]] text-input</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">user</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">user</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li></ol></div>
<p>留意这里的ajax[ajaxUserCallPhp] ，[]内部即时ajax的验证规则，是必须对应起来的。</p>
<h5> Submit验证</h5>
<p>直接ajax验证整个表单可以如下处理。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">jQuery</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">#formID</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">validationEngine</span><span style="color: Olive;">({</span></li>
<li><span style="color: Blue;">ajaxFormValidation</span><span style="color: Gray;">: </span><span style="color: Green;">true</span><span style="color: Gray;">,</span></li>
<li><span style="color: Blue;">onAjaxFormComplete</span><span style="color: Gray;">: </span><span style="color: Blue;">ajaxValidationCallback</span><span style="color: Gray;">,</span></li>
<li><span style="color: Blue;">onBeforeAjaxFormValidation</span><span style="color: Gray;">: </span><span style="color: Blue;">beforeCall</span></li>
<li><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li></ol></div>
<ul>
<li>ajaxFormValidation：开启ajax表单验证</li>
<li>onAjaxFormComplete：ajax验证结束后执行的回调函数</li>
<li>onBeforeAjaxFormValidation：在ajax验证前执行的回调函数</li>
</ul>
<p>具体demo可以看：<a href="http://www.position-relative.net/creation/formValidator/demos/demoAjaxSubmitPHP.html">http://www.position-relative.net/creation/formValidator/demos/demoAjaxSubmitPHP.html</a>。</p>
<h4>如何使用钩子？</h4>
<p>Validation-Engine中的钩子是用来做啥？我们来看一个典型的使用场景：当你的表单字段存在错误时，你希望表单提交前，在表单头部打印出一行“你的表单存在错误，请修改！”。<br />
也就是说Validation-Engine中的钩子其实可以理解为自定义事件。<br />
具体来看个demo：<a href="http://www.position-relative.net/creation/formValidator/demos/demoHooks.html">http://www.position-relative.net/creation/formValidator/demos/demoHooks.html</a>。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">#formID</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">bind</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">jqv.form.result</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Blue;">event</span><span style="color: Gray;"> , </span><span style="color: Blue;">errorFound</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Blue;">errorFound</span><span style="color: Olive;">)</span><span style="color: Gray;"> $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">#hookError</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">append</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">There is some problems with your form</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span></li></ol></div>
<p>监听jqv.form.result事件，在提交表单前触发。<br />
errorFound是错误标识符，当为false时，表示表单存在错误。</p>
<h5>Validation-Engine目前支持的钩子（自定义事件）</h5>
<ul>
<li>jqv.form.validating:在表单开始验证前</li>
<li>jqv.field.result(event, field, errorFound, prompText) :一个表单字段验证后触发</li>
<li> jqv.form.result(event, errorFound) : 表单验证后触发</li>
</ul>
<h4>注意点</h4>
<p>xiantao同学提了关于Validation-Engine的问题，有使用的朋友可以留意下：<br />
“大家用的时候要注意一点，就是尽可能的把需要验证的框排的不要要密，或者说间距很小，要不会导致验证时弹出的层盖住其他的框，而这些框无法获得焦点，导致用户无法输入，而这个框有是必填的，结果就是用户的表单无法提交。我们整个项目都用的是这个，除了这一点，真的很完美”</p>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/4370/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>jquery分页插件—Smart Paginator</title>
		<link>http://www.36ria.com/4343</link>
		<comments>http://www.36ria.com/4343#comments</comments>
		<pubDate>Wed, 25 May 2011 06:52:52 +0000</pubDate>
		<dc:creator>明河</dc:creator>
				<category><![CDATA[jquery插件]]></category>
		<category><![CDATA[jquery分页插件]]></category>
		<category><![CDATA[分页]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=4343</guid>
		<description><![CDATA[点此查看demo 很久没介绍jquery相关的东西了，今天推荐一个分页工具条插件：Smart Paginator，这个插件用途还是很广的，而且可定制性相当不错，目前内置三种颜色，有需要的话，可以自己改css定制颜色，明河推荐使用。 1.如何使用Smart Paginator？ 1.1引入以下几个文件 &#60;script src=&#34;jquery-1.4.4.min.js&#34; type=&#34;text/javascript&#34;&#62;&#60;/script&#62; &#160; &#160; &#60;script&#160;src=&#34;smartpagina......]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.36ria.com/4343/smart-paginator" rel="attachment wp-att-4344"><img src="http://www.36ria.com/wp-content/uploads/2011/05/smart-paginator.png" alt="" title="smart-paginator" width="680" height="181" class="alignnone size-full wp-image-4344" /></a></p>
<ul class="tow-columns clearfix">
<li class="l"><a href="http://www.egrappler.com/contents/smartpaginator/demo/smartpaginator.htm" class="btn-view-demo" target="_blank">点此查看demo</a></li>
<li class="l"><a href="http://www.36ria.com/wp-content/plugins/download-monitor/download.php?id=216" title="名称：smart-paginator，下载次数：475，文件大小：32.79 kB" class="btn-download">点此下载</a></li>
</ul>
<p>很久没介绍jquery相关的东西了，今天推荐一个分页工具条插件：<strong>Smart Paginator</strong>，这个插件用途还是很广的，而且可定制性相当不错，目前内置三种颜色，有需要的话，可以自己改css定制颜色，明河推荐使用。</p>
<h4>1.如何使用Smart Paginator？</h4>
<h5>1.1引入以下几个文件</h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">script</span><span style="color: Gray;"> </span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">jquery-1.4.4.min.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/javascript</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">script</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">smartpaginator.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/javascript</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">link</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">smartpaginator.css</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">rel</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">stylesheet</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/css</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li></ol></div>
<h5>1.2添加一个分页容器层</h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Gray;"> </span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">smart-paginator</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">&gt;</span><span style="color: Gray;"> </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li></ol></div>
<h5>1.3初始化插件</h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: Teal;">document</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">ready</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#smart-paginator</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">smartpaginator</span><span style="color: Olive;">({</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">totalrecords</span><span style="color: Gray;">: </span><span style="color: Maroon;">100</span><span style="color: Gray;">, </span><span style="color: Blue;">recordsperpage</span><span style="color: Gray;">: </span><span style="color: Maroon;">10</span><span style="color: Gray;">, </span><span style="color: Blue;">initval</span><span style="color: Gray;">:</span><span style="color: Maroon;">0</span><span style="color: Gray;"> , </span><span style="color: Blue;">next</span><span style="color: Gray;">: </span><span style="color: #8b0000;">'</span><span style="color: Red;">Next</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Blue;">prev</span><span style="color: Gray;">: </span><span style="color: #8b0000;">'</span><span style="color: Red;">Prev</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Blue;">first</span><span style="color: Gray;">: </span><span style="color: #8b0000;">'</span><span style="color: Red;">First</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Blue;">last</span><span style="color: Gray;">: </span><span style="color: #8b0000;">'</span><span style="color: Red;">Last</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Blue;">theme</span><span style="color: Gray;">: </span><span style="color: #8b0000;">'</span><span style="color: Red;">green</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Blue;">onchange</span><span style="color: Gray;">: </span><span style="color: Teal;">onChange</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Teal;">onChange</span><span style="color: Olive;">(</span><span style="color: Blue;">newPageValue</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">alert</span><span style="color: Olive;">(</span><span style="color: Blue;">newPageValue</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">}</span></li></ol></div>
<p>可以看到想要初始化Smart Paginator，需要配置不少参数，接下来来看下这些主要参数的含义。</p>
<h4>2.参数说明</h4>
<table border="0" cellspacing="0" cellpadding="0" class="tab1">
<thead>
<tr>
<td width="127" valign="top">
<p><strong>参数</strong></p>
</td>
<td width="108" valign="top">
<p><strong>默认值</strong></p>
</td>
<td width="84" valign="top">
<p><strong>类型</strong></p>
</td>
<td width="249" valign="top">
<p><strong>描述</strong></p>
</td>
</tr>
</thead>
<tbody>
<tr>
<td width="127" valign="top">
<p><strong>totalrecords</strong></p>
</td>
<td width="108" valign="top">
<p>0</p>
</td>
<td width="84" valign="top">
<p>Number</p>
</td>
<td width="249" valign="top">
<p>总的分页数</p>
</td>
</tr>
<tr>
<td width="127" valign="top">
<p><strong>recordsperpage</strong></p>
</td>
<td width="108" valign="top">
<p>0</p>
</td>
<td width="84" valign="top">
<p>Number</p>
</td>
<td width="249" valign="top">
<p>单页数据量</p>
</td>
</tr>
<tr>
<td width="127" valign="top">
<p><strong>length</strong></p>
</td>
<td width="108" valign="top">
<p>10</p>
</td>
<td width="84" valign="top">
<p>Number</p>
</td>
<td width="249" valign="top">
<p>这个参数很特殊，上一页、下一页、第一页、最后一页的显示控制依赖于这个参数，当length的值大于totalrecords/recordsperpage时，是不显示上一页、下一页、第一页、最后一页的</p>
</td>
</tr>
<tr>
<td width="127" valign="top">
<p><strong>next</strong></p>
</td>
<td width="108" valign="top">
<p>Next</p>
</td>
<td width="84" valign="top">
<p>String</p>
</td>
<td width="249" valign="top">
<p>下一页文本</p>
</td>
</tr>
<tr>
<td width="127" valign="top">
<p><strong>prev</strong></p>
</td>
<td width="108" valign="top">
<p>Prev</p>
</td>
<td width="84" valign="top">
<p>String</p>
</td>
<td width="249" valign="top">
<p>上一页文本</p>
</td>
</tr>
<tr>
<td width="127" valign="top">
<p><strong>first</strong></p>
</td>
<td width="108" valign="top">
<p>First</p>
</td>
<td width="84" valign="top">
<p>String</p>
</td>
<td width="249" valign="top">
<p>第一页文本</p>
</td>
</tr>
<tr>
<td width="127" valign="top">
<p><strong>last</strong></p>
</td>
<td width="108" valign="top">
<p>Last</p>
</td>
<td width="84" valign="top">
<p>String</p>
</td>
<td width="249" valign="top">
<p>最后一页文本</p>
</td>
</tr>
<tr>
<td width="127" valign="top">
<p><strong>go</strong></p>
</td>
<td width="108" valign="top">
<p>Go</p>
</td>
<td width="84" valign="top">
<p>String</p>
</td>
<td width="249" valign="top">
<p>跳转文本</p>
</td>
</tr>
<tr>
<td width="127" valign="top">
<p><strong>theme</strong></p>
</td>
<td width="108" valign="top">
<p>green</p>
</td>
<td width="84" valign="top">
<p>Stirng</p>
</td>
<td width="249" valign="top">
<p>模板 </p>
</td>
</tr>
<tr>
<td width="127" valign="top">
<p><strong>display</strong></p>
</td>
<td width="108" valign="top">
<p>double</p>
</td>
<td width="84" valign="top">
<p>String</p>
</td>
<td width="249" valign="top">
</td>
</tr>
<tr>
<td width="127" valign="top">
<p><strong>initval</strong></p>
</td>
<td width="108" valign="top">
<p>1</p>
</td>
<td width="84" valign="top">
<p>Number</p>
</td>
<td width="249" valign="top">
<p>默认显示第几页</p>
</td>
</tr>
<tr>
<td width="127" valign="top">
<p><strong>datacontainer</strong></p>
</td>
<td width="108" valign="top">
<p>”</p>
</td>
<td width="84" valign="top">
<p>String</p>
</td>
<td width="249" valign="top">
<p>数据容器id，请看demo3 </p>
</td>
</tr>
<tr>
<td width="127" valign="top">
<p><strong>dataelement</strong></p>
</td>
<td width="108" valign="top">
<p>”</p>
</td>
<td width="84" valign="top">
<p>String</p>
</td>
<td width="249" valign="top">
<p>数据元素，指的是容器下的对应的子元素的选择器，请看demo2</p>
</td>
</tr>
<tr>
<td width="127" valign="top">
<p><strong>onchange</strong></p>
</td>
<td width="108" valign="top">
<p>null</p>
</td>
<td width="84" valign="top">
<p>Function</p>
</td>
<td width="249" valign="top">
<p>分页改变后触发的函数</p>
</td>
</tr>
</tbody>
</table>
<h4>3.自定义颜色模板</h4>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">.green</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">background-color:</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">#4f7305</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">.green.normal</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">background-color:</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">#588500</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">color:</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">White</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">border:</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">solid</span><span style="color: Gray;"> </span><span style="color: Maroon;">1</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: #00008b;">#5f9000</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">.green.active</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">background-color:</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">#344C00</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">color:</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">#F8EB00</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">border:</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">solid</span><span style="color: Gray;"> </span><span style="color: Maroon;">1</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: #00008b;">#5f9000</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">.green</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">.btn</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">background-color:</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">#588500</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">color:</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">White</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">border:</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">solid</span><span style="color: Gray;"> </span><span style="color: Maroon;">1</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: #00008b;">#5f9000</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/4343/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>使用jQuery和css进行更好的checkbox按钮设计</title>
		<link>http://www.36ria.com/4203</link>
		<comments>http://www.36ria.com/4203#comments</comments>
		<pubDate>Tue, 03 May 2011 11:22:56 +0000</pubDate>
		<dc:creator>苏河</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[jquery插件]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=4203</guid>
		<description><![CDATA[有很多场景需要我们用checkbox来进行诠释，比如一些开关配置的启用与否，当然，原始的checkbox已经深入人心，相信大多数的网站都会采用这种方式与用户进行交互，苏河今天要提出的就是一种不同的交互方式，我们姑且称它为开关式交互（请猛击这里查看demo），这种交互方式相信大家或多或少都能在一些网站上见到过，那么今天，苏河就采用jQuery插件对这种交互进行实现。 ......]]></description>
			<content:encoded><![CDATA[<p>有很多场景需要我们用checkbox来进行诠释，比如一些开关配置的启用与否，当然，原始的checkbox已经深入人心，相信大多数的网站都会采用这种方式与用户进行交互，苏河今天要提出的就是一种不同的交互方式，我们姑且称它为开关式交互（请猛击<a href="http://www.36ria.com/demo/jquery-checkbox/index.html" target="_blank">这里</a>查看demo），这种交互方式相信大家或多或少都能在一些网站上见到过，那么今天，苏河就采用jQuery插件对这种交互进行实现。</p>
<ul class="tow-columns clearfix">
<li class="l"><a href="http://www.36ria.com/demo/jquery-checkbox/index.html" class="btn-view-demo" target="_blank">点此查看demo</a></li>
<li class="l"><a href="http://www.36ria.com/wp-content/plugins/download-monitor/download.php?id=214" title="名称：jquery checkbox ，下载次数：168，文件大小：7.7 kB" class="btn-download">点此下载</a></li>
</ul>
<h4>
1. HTML<br />
</h4>
<p>首先是文档结构，我们需要一个带有form标签的checkbox，我们还需要引入一个jQuery以及一个自定义的css样式。</p>
<p><b>index.html</b></p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Gray;">!</span><span style="color: #00008b;">DOCTYPE</span><span style="color: Gray;"> </span><span style="color: #00008b;">html</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">html</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">head</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">meta</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">http-equiv</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Content-Type</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">content</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/html; charset=utf-8</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">title</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">Better Check Boxes with jQuery and CSS | Tutorialzine Demo</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">title</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">link</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">rel</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">stylesheet</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/css</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">css/styles.css</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">link</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">rel</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">stylesheet</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/css</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">jquery.tzCheckbox/jquery.tzCheckbox.css</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">head</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">body</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">page</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">form</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">method</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">get</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">action</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">./</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">ul</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">label</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">for</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ch_effects</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">Display effects: </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">label</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">input</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">checkbox</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ch_effects</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ch_effects</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">data-on</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Show effects</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">data-off</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Hide effects</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">label</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">for</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ch_location</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">Enable location tracking: </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">label</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">input</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">checkbox</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ch_location</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ch_location</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">checked</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">label</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">for</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ch_showsearch</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">Include me in search results: </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">label</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">input</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">checkbox</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ch_showsearch</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ch_showsearch</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">label</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">for</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ch_emails</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">Email notifications: </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">label</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">input</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">checkbox</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ch_emails</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ch_emails</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">data-on</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ON</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">data-off</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">OFF</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">ul</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">form</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">script</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">script</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">jquery.tzCheckbox/jquery.tzCheckbox.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">script</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">js/script.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">body</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">html</span><span style="color: Olive;">&gt;</span></li></ol></div>
<p>这段代码主容器page包含一个form元素，form元素里面用label诠释相应checkbox，checkbox通过data-on和data-off属性来定义勾选与否显示的文字。<br />
下面一段代码是jQuery插件执行完之后用来替代checkbox显示开关的代码</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">&lt;</span><span style="color: Blue;">span</span><span style="color: Gray;"> </span><span style="color: Green;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">tzCheckBox checked</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &lt;</span><span style="color: Blue;">span</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">tzCBContent</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">&gt;</span><span style="color: Blue;">ON</span><span style="color: Gray;">&lt;</span><span style="color: #8b0000;">/</span><span style="color: Red;">span&gt;</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &lt;span class=&quot;tzCBPart&quot;&gt;&lt;</span><span style="color: #8b0000;">/</span><span style="color: Blue;">span</span><span style="color: Gray;">&gt;</span></li>
<li><span style="color: Gray;">&lt;</span><span style="color: #8b0000;">/</span><span style="color: Red;">span&gt;</span></li></ol></div>
<p>当插件被调用的时候，将做一次循环遍历checkbox的操作，然后在每个checkbox后插入上面这段代码，并隐藏checkbox以达到偷梁换柱的目的。</p>
<h4>css</h4>
<p><a href="http://www.36ria.com/4203/checkbox-replacement-explai-2" rel="attachment wp-att-4221"><img src="http://www.36ria.com/wp-content/uploads/2011/05/checkbox-replacement-explai1.png" alt="" title="背景" width="620" height="260" class="alignleft size-full wp-image-4221" /></a><br />
好了，接下来我们将注意力转移到样式上，苏河用一张透明的图片来显示开关的背景，这是一张会随着开关文字增加而自动延伸背景的sprites。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">.</span><span style="color: Blue;">tzCheckBox</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">background</span><span style="color: Gray;">:</span><span style="color: Blue;">url</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">background.png</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">no</span><span style="color: Gray;">-</span><span style="color: Blue;">repeat</span><span style="color: Gray;"> </span><span style="color: Blue;">right</span><span style="color: Gray;"> </span><span style="color: Blue;">bottom</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">display</span><span style="color: Gray;">:</span><span style="color: Blue;">inline</span><span style="color: Gray;">-</span><span style="color: Blue;">block</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">min</span><span style="color: Gray;">-</span><span style="color: Blue;">width</span><span style="color: Gray;">:</span><span style="color: Maroon;">60</span><span style="color: Blue;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">height</span><span style="color: Gray;">:</span><span style="color: Maroon;">33</span><span style="color: Blue;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">white</span><span style="color: Gray;">-</span><span style="color: Blue;">space</span><span style="color: Gray;">:</span><span style="color: Blue;">nowrap</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">position</span><span style="color: Gray;">:</span><span style="color: Blue;">relative</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">cursor</span><span style="color: Gray;">:</span><span style="color: Blue;">pointer</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">margin</span><span style="color: Gray;">-</span><span style="color: Blue;">left</span><span style="color: Gray;">:</span><span style="color: Maroon;">14</span><span style="color: Blue;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">.</span><span style="color: Blue;">tzCheckBox</span><span style="color: Gray;">.</span><span style="color: Blue;">checked</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">background</span><span style="color: Gray;">-</span><span style="color: Blue;">position</span><span style="color: Gray;">:</span><span style="color: Blue;">top</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">left</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">margin</span><span style="color: Gray;">:</span><span style="color: Maroon;">0</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">14</span><span style="color: Blue;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">.</span><span style="color: Blue;">tzCheckBox</span><span style="color: Gray;"> .</span><span style="color: Blue;">tzCBContent</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">color</span><span style="color: Gray;">: </span><span style="color: Blue;">white</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">line</span><span style="color: Gray;">-</span><span style="color: Blue;">height</span><span style="color: Gray;">: </span><span style="color: Maroon;">31</span><span style="color: Blue;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">padding</span><span style="color: Gray;">-</span><span style="color: Blue;">right</span><span style="color: Gray;">: </span><span style="color: Maroon;">38</span><span style="color: Blue;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">text</span><span style="color: Gray;">-</span><span style="color: Blue;">align</span><span style="color: Gray;">: </span><span style="color: Blue;">right</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">.</span><span style="color: Blue;">tzCheckBox</span><span style="color: Gray;">.</span><span style="color: Blue;">checked</span><span style="color: Gray;"> .</span><span style="color: Blue;">tzCBContent</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">text</span><span style="color: Gray;">-</span><span style="color: Blue;">align</span><span style="color: Gray;">:</span><span style="color: Blue;">left</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">padding</span><span style="color: Gray;">:</span><span style="color: Maroon;">0</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Maroon;">38</span><span style="color: Blue;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">.</span><span style="color: Blue;">tzCBPart</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">background</span><span style="color: Gray;">:</span><span style="color: Blue;">url</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">background.png</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">no</span><span style="color: Gray;">-</span><span style="color: Blue;">repeat</span><span style="color: Gray;"> </span><span style="color: Blue;">left</span><span style="color: Gray;"> </span><span style="color: Blue;">bottom</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">width</span><span style="color: Gray;">:</span><span style="color: Maroon;">14</span><span style="color: Blue;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">position</span><span style="color: Gray;">:</span><span style="color: Blue;">absolute</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">top</span><span style="color: Gray;">:</span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">left</span><span style="color: Gray;">:-</span><span style="color: Maroon;">14</span><span style="color: Blue;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">height</span><span style="color: Gray;">:</span><span style="color: Maroon;">33</span><span style="color: Blue;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">overflow</span><span style="color: Gray;">: </span><span style="color: Blue;">hidden</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">.</span><span style="color: Blue;">tzCheckBox</span><span style="color: Gray;">.</span><span style="color: Blue;">checked</span><span style="color: Gray;"> .</span><span style="color: Blue;">tzCBPart</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">background</span><span style="color: Gray;">-</span><span style="color: Blue;">position</span><span style="color: Gray;">:</span><span style="color: Blue;">top</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">right</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">left</span><span style="color: Gray;">:</span><span style="color: Blue;">auto</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">right</span><span style="color: Gray;">:-</span><span style="color: Maroon;">14</span><span style="color: Blue;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>这里的<b>tzCheckBox</b>用inline-block的行内的块元素进行定义，为的是tzCheckBox子元素的背景和文字在同一行，同时position的相对定位也为其子元素的背景元素的定位提供一个参考的标准，可以让<b>tzCBPart</b>显示剩余的背景。</p>
<h4>jQuery插件</h4>
<p>好了，接下来介绍jQuery插件，这个插件公布了一个可写属性labels供外部进行开关文字的定义，另外，将选择器作为this指针传入函数进行checkbox的遍历。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Gray;">$</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; $.</span><span style="color: Blue;">fn</span><span style="color: Gray;">.</span><span style="color: Blue;">tzCheckbox</span><span style="color: Gray;"> = </span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Blue;">options</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//默认是ON和OFF:</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">options</span><span style="color: Gray;"> = $.</span><span style="color: Blue;">extend</span><span style="color: Olive;">({</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">labels</span><span style="color: Gray;"> : </span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">ON</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">OFF</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">,</span><span style="color: Blue;">options</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">each</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">originalCheckBox</span><span style="color: Gray;"> = $</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">labels</span><span style="color: Gray;"> = </span><span style="color: Olive;">[]</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// 检查data-on和data-off属性:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Blue;">originalCheckBox</span><span style="color: Gray;">.</span><span style="color: Blue;">data</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">on</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">labels</span><span style="color: Olive;">[</span><span style="color: Maroon;">0</span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: Blue;">originalCheckBox</span><span style="color: Gray;">.</span><span style="color: Blue;">data</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">on</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">labels</span><span style="color: Olive;">[</span><span style="color: Maroon;">1</span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: Blue;">originalCheckBox</span><span style="color: Gray;">.</span><span style="color: Blue;">data</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">off</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">else</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">labels</span><span style="color: Gray;"> = </span><span style="color: Blue;">options</span><span style="color: Gray;">.</span><span style="color: Blue;">labels</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// 生成开关HTML代码</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">checkBox</span><span style="color: Gray;"> = $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&lt;span&gt;</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">className</span><span style="color: Gray;">&nbsp; &nbsp; : </span><span style="color: #8b0000;">'</span><span style="color: Red;">tzCheckBox </span><span style="color: #8b0000;">'</span><span style="color: Gray;">+</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">checked</span><span style="color: Gray;">?</span><span style="color: #8b0000;">'</span><span style="color: Red;">checked</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span><span style="color: #8b0000;">''</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">html</span><span style="color: Gray;">:&nbsp; &nbsp; </span><span style="color: #8b0000;">'</span><span style="color: Red;">&lt;span class=&quot;tzCBContent&quot;&gt;</span><span style="color: #8b0000;">'</span><span style="color: Gray;">+</span><span style="color: Blue;">labels</span><span style="color: Olive;">[</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">checked</span><span style="color: Gray;">?</span><span style="color: Maroon;">0</span><span style="color: Gray;">:</span><span style="color: Maroon;">1</span><span style="color: Olive;">]</span><span style="color: Gray;">+</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #8b0000;">'</span><span style="color: Red;">&lt;/span&gt;&lt;span class=&quot;tzCBPart&quot;&gt;&lt;/span&gt;</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//插入开关代码，并隐藏原始的checkbox </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">checkBox</span><span style="color: Gray;">.</span><span style="color: Blue;">insertAfter</span><span style="color: Olive;">(</span><span style="color: Blue;">originalCheckBox</span><span style="color: Gray;">.</span><span style="color: Blue;">hide</span><span style="color: Olive;">())</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">checkBox</span><span style="color: Gray;">.</span><span style="color: Blue;">click</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">checkBox</span><span style="color: Gray;">.</span><span style="color: Blue;">toggleClass</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">checked</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">isChecked</span><span style="color: Gray;"> = </span><span style="color: Blue;">checkBox</span><span style="color: Gray;">.</span><span style="color: Blue;">hasClass</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">checked</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// 记录开关变化至原始的checkbox中</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">originalCheckBox</span><span style="color: Gray;">.</span><span style="color: Blue;">attr</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">checked</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">isChecked</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">checkBox</span><span style="color: Gray;">.</span><span style="color: Blue;">find</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">.tzCBContent</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">html</span><span style="color: Olive;">(</span><span style="color: Blue;">labels</span><span style="color: Olive;">[</span><span style="color: Blue;">isChecked</span><span style="color: Gray;">?</span><span style="color: Maroon;">0</span><span style="color: Gray;">:</span><span style="color: Maroon;">1</span><span style="color: Olive;">])</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// 监听原始checkbox的改变，做开关模拟点击</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">originalCheckBox</span><span style="color: Gray;">.</span><span style="color: Blue;">bind</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">change</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">checkBox</span><span style="color: Gray;">.</span><span style="color: Blue;">click</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">})(</span><span style="color: Blue;">jQuery</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<p>当然，针对开关的操作定义了click事件来进行一些响应，比如是否选中会记录到原始的checkbox（虽然它被隐藏了）中，比如开关文字的变化。有人会问为什么要记录到原始的checkbox中，因为这是一个表单，当提交的时候它就需要post一个正确的值了。<br />
我们可以使用下面的代码来调用这段插件。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">input[type=checkbox]</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">tzCheckbox</span><span style="color: Olive;">({</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">labels</span><span style="color: Gray;">: </span><span style="color: Olive;">[</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Red;">Enable</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">Disable</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </span><span style="color: Olive;">]</span></li>
<li><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li></ol></div>
<p>这段代码的含义就是调用页面所有的checkbox，并写入开关对应的文字Enable和Disable。</p>
<p>到此为止，这个demo也结束了。</p>
<h4>结束语</h4>
<p>这个插件的用处就在于其取代了原来的checkbox，在某些场合能给用户更好的交互体验，相信大家一定在一些配置应用或者管理员页面中经常见到这样的交互吧，当然，当用户禁用了javascript的时候，展现给用户的就是原始的checkbox了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/4203/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>提升用户体验之道：图片预加载</title>
		<link>http://www.36ria.com/4030</link>
		<comments>http://www.36ria.com/4030#comments</comments>
		<pubDate>Fri, 08 Apr 2011 15:06:23 +0000</pubDate>
		<dc:creator>天河</dc:creator>
				<category><![CDATA[javascript教程]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[前端]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=4030</guid>
		<description><![CDATA[随着网站构建越来越倾向于实现“桌面般的体验”，网站中的图片数量也开始显著地增长。想想网站中的对话框、Tabs、Tooltips、Sliders以及日历控件吧，这都是实现“桌面般体验”的必要元素。 预加载这一堆图片对网站性能及可用性的提升是有好处的，这样避免了图片加载过程中页面的闪烁、破裂（视觉上）等问题。 常用的技术 有两种常用的图片预加载技术： CSS sprites CSS spri......]]></description>
			<content:encoded><![CDATA[<p>随着网站构建越来越倾向于实现“桌面般的体验”，网站中的图片数量也开始显著地增长。想想网站中的对话框、Tabs、Tooltips、Sliders以及日历控件吧，这都是实现“桌面般体验”的必要元素。</p>
<p>预加载这一堆图片对网站性能及可用性的提升是有好处的，这样避免了图片加载过程中页面的闪烁、破裂（视觉上）等问题。</p>
<h4>常用的技术</h4>
<p>有两种常用的图片预加载技术：</p>
<h5>CSS sprites</h5>
<p>CSS sprites技术可以用来减少页面产生的HTTP请求数。它是这么实现的，把所有的图型状态（比如按钮的默认状态，悬停及激活等状态）保存到一张图片中。并依据元素的状态，使用CSS对图片进行相应的定位、切割。</p>
<p>不过这样有个重要的缺点——需要提前加载的图片不适用这项技术。一些后面才需要显示的图片并没有被加载，这可能会导致一个延迟。因此，此技术一般适合静态站点，主要用来减少图片加载数。</p>
<h5>JavaScript</h5>
<p>另一个可以使用的技术是使用JavaScript的image对象。这个方法是这样的，先把网站中使用的每个图片的地址（URL）放到一个数组中。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">myImages</span><span style="color: Gray;"> = </span><span style="color: Olive;">[</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">image_1.jpg', 'image_2.jpg', 'image_3.jpg', ...];</span></li></ol></div>
<p>然后遍历这个数组，根据图片地址创建各自的image对象。这样可以保证所有的图片都能被浏览器缓存，等用到的时候就无需等待了。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">for</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">i</span><span style="color: Gray;"> = </span><span style="color: Maroon;">0</span><span style="color: Gray;">; </span><span style="color: Blue;">i</span><span style="color: Gray;"> &lt;= </span><span style="color: Blue;">myImages</span><span style="color: Gray;">.</span><span style="color: Blue;">length</span><span style="color: Gray;">; </span><span style="color: Blue;">i</span><span style="color: Gray;">++</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp;&nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">img</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Teal;">Image</span><span style="color: Olive;">()</span><span style="color: Gray;">; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">img</span><span style="color: Gray;">.</span><span style="color: Blue;">src</span><span style="color: Gray;"> = </span><span style="color: Blue;">myImages</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>此方案费时的地方是，不仅要制造一个包含每张图片地址的数组，还要维护它的一致性。网站的每个需求变更（添加或更改图片地址）都会影响到这个数组。试想频繁变更的应用，又拥有数百张图片，这真会让人筋疲力尽的。</p>
<h4>图片自动预加载（带进度指示器）</h4>
<p>一个更好的方式是自动收集图片的地址。</p>
<p>首先要分析页面中（包括外链及内联）的样式表。这可以通过遍历“document.styleSheets”对象来获得页面使用的所有样式表。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">for</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">i</span><span style="color: Gray;"> = </span><span style="color: Maroon;">0</span><span style="color: Gray;">; </span><span style="color: Blue;">i</span><span style="color: Gray;"> &lt; </span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">styleSheets</span><span style="color: Gray;">.</span><span style="color: Blue;">length</span><span style="color: Gray;">; </span><span style="color: Blue;">i</span><span style="color: Gray;">++</span><span style="color: Olive;">){</span></li></ol></div>
<p>接下来要找出样式表的根目录。用来得到各个图片的绝对地址。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">baseURL</span><span style="color: Gray;"> = </span><span style="color: Blue;">getBaseURL</span><span style="color: Olive;">(</span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">styleSheets</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;">.</span><span style="color: Blue;">href</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<p>考虑到浏览器的兼容性，必须同时检查每个样式表的“cssRules”或“rules”中是否包含CSS规则。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">if</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">styleSheets</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;">.</span><span style="color: Blue;">cssRules</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">cssRules</span><span style="color: Gray;"> = </span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">styleSheets</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;">.</span><span style="color: Blue;">cssRules</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Green;">else</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">if</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">styleSheets</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;">.</span><span style="color: Blue;">rules</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">cssRules</span><span style="color: Gray;"> = </span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">styleSheets</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;">.</span><span style="color: Blue;">rules</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>所有非空的CSS规则都要被解析，来确认它是否关联了图片。一个简单的正则表达式就可以解析出图片地址。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">cssRule</span><span style="color: Gray;"> = </span><span style="color: Blue;">cssRules</span><span style="color: Olive;">[</span><span style="color: Blue;">j</span><span style="color: Olive;">]</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">cssText</span><span style="color: Gray;">.</span><span style="color: Blue;">match</span><span style="color: Olive;">(</span><span style="color: #8b0000;">/</span><span style="color: Red;">[^\(]+\.(gif|jpg|jpeg|png)</span><span style="color: #8b0000;">/g</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<p>然后，把这里收集到的所有图片地址保存到一个数组中供后面使用。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">analyzeCSSFiles</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">cssRules</span><span style="color: Gray;">; </span><span style="color: #ffa500;">// CSS rules</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">for</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">i</span><span style="color: Gray;"> = </span><span style="color: Maroon;">0</span><span style="color: Gray;">; </span><span style="color: Blue;">i</span><span style="color: Gray;"> &lt; </span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">styleSheets</span><span style="color: Gray;">.</span><span style="color: Blue;">length</span><span style="color: Gray;">; </span><span style="color: Blue;">i</span><span style="color: Gray;">++</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;"> </span><span style="color: #ffa500;">// loop through all linked/inline stylesheets</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp;&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">baseURL</span><span style="color: Gray;"> = </span><span style="color: Blue;">getBaseURL</span><span style="color: Olive;">(</span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">styleSheets</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;">.</span><span style="color: Blue;">href</span><span style="color: Olive;">)</span><span style="color: Gray;">; </span><span style="color: #ffa500;">// get stylesheet's base URL </span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// get CSS rules</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">styleSheets</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;">.</span><span style="color: Blue;">cssRules</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">cssRules</span><span style="color: Gray;"> = </span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">styleSheets</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;">.</span><span style="color: Blue;">cssRules</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">else</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">if</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">styleSheets</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;">.</span><span style="color: Blue;">rules</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">cssRules</span><span style="color: Gray;"> = </span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">styleSheets</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;">.</span><span style="color: Blue;">rules</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// loop through all CSS rules</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">for</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">j</span><span style="color: Gray;"> = </span><span style="color: Maroon;">0</span><span style="color: Gray;">; </span><span style="color: Blue;">j</span><span style="color: Gray;"> &lt; </span><span style="color: Blue;">cssRules</span><span style="color: Gray;">.</span><span style="color: Blue;">length</span><span style="color: Gray;">; </span><span style="color: Blue;">j</span><span style="color: Gray;">++</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Blue;">cssRules</span><span style="color: Olive;">[</span><span style="color: Blue;">j</span><span style="color: Olive;">]</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;"> &amp;&amp; </span><span style="color: Blue;">cssRules</span><span style="color: Olive;">[</span><span style="color: Blue;">j</span><span style="color: Olive;">]</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">cssText</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// extract only image related CSS rules </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// parse rules string and extract image URL</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">cssRule</span><span style="color: Gray;"> = </span><span style="color: Blue;">cssRules</span><span style="color: Olive;">[</span><span style="color: Blue;">j</span><span style="color: Olive;">]</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">cssText</span><span style="color: Gray;">.</span><span style="color: Blue;">match</span><span style="color: Olive;">(</span><span style="color: #8b0000;">/</span><span style="color: Red;">[^\(]+\.(gif|jpg|jpeg|png)</span><span style="color: #8b0000;">/g</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Blue;">cssRule</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// add image URL to array</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">cssRule</span><span style="color: Gray;"> = </span><span style="color: Olive;">(</span><span style="color: Blue;">cssRule</span><span style="color: Gray;"> + </span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">replace</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\&quot;</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">imageURLs</span><span style="color: Gray;">.</span><span style="color: Blue;">push</span><span style="color: Olive;">(</span><span style="color: Blue;">baseURL</span><span style="color: Gray;"> + </span><span style="color: Blue;">cssRule</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>数组中存放的图片地址是绝对路径，为了得到它，我们实现了“getBaseUrl”函数来解析每个CSS文件的绝对地址。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">getBaseURL</span><span style="color: Olive;">(</span><span style="color: Blue;">cssLink</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">cssLink</span><span style="color: Gray;"> = </span><span style="color: Olive;">(</span><span style="color: Blue;">cssLink</span><span style="color: Olive;">)</span><span style="color: Gray;"> ? </span><span style="color: Blue;">cssLink</span><span style="color: Gray;"> : </span><span style="color: #8b0000;">'</span><span style="color: Red;">window.location.href</span><span style="color: #8b0000;">'</span><span style="color: Gray;">; </span><span style="color: #ffa500;">// window.location.href for inline style definitions</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">urlParts</span><span style="color: Gray;"> = </span><span style="color: Blue;">cssLink</span><span style="color: Gray;">.</span><span style="color: Blue;">split</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">/</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">; </span><span style="color: #ffa500;">// split link at '/' into an array</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">urlParts</span><span style="color: Gray;">.</span><span style="color: Blue;">pop</span><span style="color: Olive;">()</span><span style="color: Gray;">; </span><span style="color: #ffa500;">// remove file path from URL array</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">baseURL</span><span style="color: Gray;"> = </span><span style="color: Blue;">urlParts</span><span style="color: Gray;">.</span><span style="color: Blue;">join</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">/</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">; </span><span style="color: #ffa500;">// create base URL (rejoin URL parts)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Blue;">baseURL</span><span style="color: Gray;"> != </span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">baseURL</span><span style="color: Gray;"> += </span><span style="color: #8b0000;">'</span><span style="color: Red;">/</span><span style="color: #8b0000;">'</span><span style="color: Gray;">; </span><span style="color: #ffa500;">// expand URL with a '/'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">baseURL</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>现在，遍历这个列表，为网站的每个图片创建一个JavaScript图片对象，来实现图片预加载并强制浏览器进行缓存。请注意“setTimeout”的使用，它确保了每个图片加载是依序执行的，当前图片加载完成才会加载下一个。原因是某些浏览器无法同时处理超过2个请求（译者注：IE6单域下的并发连接数限制就是2个）。为了避免可能的死锁，这里使用jQuery的bind方法给“load”、“onreadystatechange”和“error”事件绑定了一个处理器。这样可以确保遇到无法加载的遗失图片时，“errorTimer”可以把你带回正确的轨道。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">preloadImages</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Blue;">imageURLs</span><span style="color: Gray;"> &amp;&amp; </span><span style="color: Blue;">imageURLs</span><span style="color: Gray;">.</span><span style="color: Blue;">length</span><span style="color: Gray;"> &amp;&amp; </span><span style="color: Blue;">imageURLs</span><span style="color: Olive;">[</span><span style="color: Blue;">imagesLoaded</span><span style="color: Olive;">])</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;"> </span><span style="color: #ffa500;">// if image URLs array isn't empty</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">img</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Teal;">Image</span><span style="color: Olive;">()</span><span style="color: Gray;">; </span><span style="color: #ffa500;">// create a new imgage object</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">img</span><span style="color: Gray;">.</span><span style="color: Blue;">src</span><span style="color: Gray;"> = </span><span style="color: Blue;">imageURLs</span><span style="color: Olive;">[</span><span style="color: Blue;">imagesLoaded</span><span style="color: Olive;">]</span><span style="color: Gray;">; </span><span style="color: #ffa500;">// set the image source to the extracted image URL</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">setTimeout</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;">!</span><span style="color: Blue;">img</span><span style="color: Gray;">.</span><span style="color: Blue;">complete</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">jQuery</span><span style="color: Olive;">(</span><span style="color: Blue;">img</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">bind</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">onreadystatechange load error</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Blue;">onImageLoaded</span><span style="color: Olive;">)</span><span style="color: Gray;">; </span><span style="color: #ffa500;">// bind event handler</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">else</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">onImageLoaded</span><span style="color: Olive;">()</span><span style="color: Gray;">; </span><span style="color: #ffa500;">// image loaded successfully, continue with the next one</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">errorTimer</span><span style="color: Gray;"> = </span><span style="color: Blue;">setTimeout</span><span style="color: Olive;">(</span><span style="color: Blue;">onImageLoaded</span><span style="color: Gray;">, </span><span style="color: Maroon;">1000</span><span style="color: Olive;">)</span><span style="color: Gray;">; </span><span style="color: #ffa500;">// handle missing files (load the next image after 1 second)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">, </span><span style="color: Maroon;">25</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">else</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">showPreloadedImages</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">onImageLoaded</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">clearTimeout</span><span style="color: Olive;">(</span><span style="color: Blue;">errorTimer</span><span style="color: Olive;">)</span><span style="color: Gray;">; </span><span style="color: #ffa500;">// clear error timer</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">imagesLoaded</span><span style="color: Gray;">++; </span><span style="color: #ffa500;">// increase image counter</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">preloadImages</span><span style="color: Olive;">()</span><span style="color: Gray;">; </span><span style="color: #ffa500;">// preload next image</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>为了提升预加载时的用户体验，这里对“onImageLoaded”事件处理器做点改动，来添加一个进度条。</p>
<p>首先，引入jQuery UI的样式和显示进度条所需要的JavaScript文件。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">link</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/css</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">css/ui-lightness/jquery-ui-1.8.6.custom.css</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">rel</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">stylesheet</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">script</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/javascript</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">js/jquery-1.4.2.min.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">script</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/javascript</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">js/jquery-ui-1.8.6.custom.min.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span></li></ol></div>
<p>然后在DOMReady事件被触发时初始化进度条。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: Teal;">document</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">ready</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">#progressbar</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">progressbar</span><span style="color: Olive;">({</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">value</span><span style="color: Gray;">: </span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Olive;">})</span><span style="color: Gray;">; </span><span style="color: #ffa500;">// initialize progress bar</span></li>
<li><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li></ol></div>
<p>最后要做的一件事是扩展“onImageLoaded”事件处理函数。每加载完一张图片，就计算一次进度并更新进度条。</p>
<p>为了验证预加载的效果，这里把所有图片都添加到页面中。在预加载全部完成时，所有的图片会同时显示。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">onImageLoaded</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">clearTimeout</span><span style="color: Olive;">(</span><span style="color: Blue;">errorTimer</span><span style="color: Olive;">)</span><span style="color: Gray;">; </span><span style="color: #ffa500;">// clear error timer</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">#imagelist</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">append</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">&lt;span&gt;</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> + </span><span style="color: Blue;">imagesLoaded</span><span style="color: Gray;"> + </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">: &lt;/span&gt;&lt;img src='</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> + </span><span style="color: Blue;">imageURLs</span><span style="color: Olive;">[</span><span style="color: Blue;">imagesLoaded</span><span style="color: Olive;">]</span><span style="color: Gray;"> + </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">'/&gt;</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">; </span><span style="color: #ffa500;">// append image tag to image list</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">imagesLoaded</span><span style="color: Gray;">++; </span><span style="color: #ffa500;">// increase image counter</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">percent</span><span style="color: Gray;"> = </span><span style="color: Blue;">parseInt</span><span style="color: Olive;">(</span><span style="color: Maroon;">100</span><span style="color: Gray;"> * </span><span style="color: Blue;">imagesLoaded</span><span style="color: Gray;"> </span><span style="color: #8b0000;">/</span><span style="color: Red;"> (imageURLs.length - 1)); </span><span style="color: #8b0000;">//</span><span style="color: Red;"> calculate progress</span></li>
<li><span style="color: Red;">&nbsp;</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; $(&quot;#progressbar&quot;).progressbar({ value: percent }); </span><span style="color: #8b0000;">//</span><span style="color: Red;"> refresh progress bar</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; $(&quot;#progressbarTitle&quot;).text(&quot;Preloading progress: &quot; + percent + &quot;%&quot;); </span></li>
<li><span style="color: Red;">&nbsp;</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; preloadImages(); </span><span style="color: #8b0000;">//</span><span style="color: Red;"> preload next image</span></li>
<li><span style="color: Red;">}</span></li></ol></div>
<h4>优秀只需一小步</h4>
<p>预加载图片是一个提升用户体验，以及让自己的网站看起来更专业的一个途径。通过自动分析CSS规则来进行图片的批量预加载也避免了大量的体力活。</p>
<p>进度条可以让用户知道加载的进展，避免用户的冷落感。另外，jQuery提供了大批优秀组件，进度条就是其中一个，只需简单的配置就可以满足我们的需求。使用它们无疑能显著提升你的网站形象。</p>
<p>希望这篇文章能给你带来灵感，去思考你的项目是否也能从这里描述的技术受益。</p>
<p>最后附上zip文件，它包含所有上面的预加载示例文件。下载并解压后，用浏览器打开preloading.html，并单击“Start preloading”就可以观看示例了。</p>
<p>再做些简单修改，你就可以把它集成到你自己的项目里了。</p>
<p>原文：<a href="http://msdn.microsoft.com/en-us/scriptjunkie/gg681862.aspx">Improving User Experience: Preload Images</a></p>
<p>附：这是天河在这里发的第一篇文章，翻译的不好，望大家见谅。顺道给大家打个招呼，以后望大家多多关照哈。原文附件在Chrome下有些小问题，待我修正后附上。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/4030/feed</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>jquery+canvas实现html5幻灯片</title>
		<link>http://www.36ria.com/3994</link>
		<comments>http://www.36ria.com/3994#comments</comments>
		<pubDate>Sat, 02 Apr 2011 05:50:40 +0000</pubDate>
		<dc:creator>明河</dc:creator>
				<category><![CDATA[html5]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[canvas教程]]></category>
		<category><![CDATA[html5教程]]></category>
		<category><![CDATA[jquery教程]]></category>
		<category><![CDATA[幻灯片]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=3994</guid>
		<description><![CDATA[点此查看demo html5最重要的更新之一：增加了canvas，开始支持矢量绘画，目前浏览器支持比较好的是canvas的2d接口，3d有点遥远，通过canvas，我们可以在web设计中实现很炫的效果，从理论上来讲，大部分的flash动画特效都有办法使用canvas实现，当然实现的成本还是过高了。今天明河向各位讲解个canvas相关的实战教程：jquery+canvas实现html5幻灯片。 关于html5的canvas有个非常经典的教程......]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.36ria.com/3994/slide-show" rel="attachment wp-att-4020"><img src="http://www.36ria.com/wp-content/uploads/2011/04/slide-show.png" alt="" title="slide-show" width="680" height="200" class="alignnone size-full wp-image-4020" /></a></p>
<ul class="tow-columns clearfix">
<li class="l"><a href="http://www.36ria.com/demo/slide-show/index.html" class="btn-view-demo" target="_blank">点此查看demo</a></li>
<li class="l"><a href="http://www.36ria.com/wp-content/plugins/download-monitor/download.php?id=213" title="名称：html5幻灯片，下载次数：276，文件大小：270.77 kB" class="btn-download">点此下载</a></li>
</ul>
<p>html5最重要的更新之一：增加了canvas，开始支持矢量绘画，目前浏览器支持比较好的是canvas的2d接口，3d有点遥远，通过canvas，我们可以在web设计中实现很炫的效果，从理论上来讲，大部分的flash动画特效都有办法使用canvas实现，当然实现的成本还是过高了。今天明河向各位讲解个canvas相关的实战教程：jquery+canvas实现html5幻灯片。<br />
关于html5的canvas有个非常经典的教程，你不得不看：来自opera中国的《<a href="http://kb.operachina.com/node/190">HTML 5 canvas —— 基本语法</a>》。<br />
canvas内容太丰富了，想要通过一篇文章都讲解到，难免流于浅谈则止，所以这篇教程只让大家了解canvas的<strong>drawImage</strong>接口。<br />
也许你会疑惑，html早就有插入图片的标签了，在canvas中插入图像有意义吗？明河的回答是：有！canvas的图像是可以实现像素级的操作！</p>
<h4>1.原理简述</h4>
<p>这篇教程的难点在于切换图片时先提高图片的对比度，然后再予以渐隐（由于使用canvas，请勿在IE下查看demo）。提高图片的对比度用的是photoshop的对比度算法，当然这个算法的细节大家无需纠结，明河只是希望通过这篇教程大家能够大致了解canvas的图像处理方面的技巧。<br />
排除这个对比度处理，其他的jquery代码其实难度不高，明河特意加了翔实的中文注释，只要你有耐心，我相信你一定看的懂。</p>
<h4>2.开始构建个用于幻灯片的图片列表</h4>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">&lt;!-- 幻灯片 START --&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">slideshow</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">ul</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">slides</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">img</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">img/photos/1.jpg</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">width</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">620</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">height</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">320</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">alt</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">照片1</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">img</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">img/photos/2.jpg</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">width</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">620</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">height</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">320</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">alt</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">照片2</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">img</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">img/photos/3.jpg</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">width</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">620</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">height</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">320</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">alt</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">照片3</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">img</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">img/photos/4.jpg</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">width</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">620</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">height</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">320</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">alt</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">照片4</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">ul</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">span</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">arrow previous</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">span</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">span</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">arrow next</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">span</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">&lt;!-- 幻灯片 END --&gt;</span></li></ol></div>
<p>非常简单的结构，除了图片列表外，当然还免不了上一张、下一张的箭头。样式不是本文的重点，这里略过。</p>
<h4>3.在页面加载结束后加载初始化幻灯片</h4>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: Teal;">window</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">load</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){})</span></li></ol></div>
<p>这里可能朋友们有疑惑：为啥不用<strong>$(function(){})</strong>，不是更简单？<br />
之所以使用$(window).load()而不使用更简洁的$()，是因为我们需要确保图片全部加载完成，而不是DOM加载完成，还有个原因canvas还是很耗资源的。</p>
<h4>4.判断浏览器是否支持canvas</h4>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">//测试浏览器是否支持canvas</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">supportCanvas</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">getContext</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </span><span style="color: Green;">in</span><span style="color: Gray;"> </span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">createElement</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">canvas</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<p>这一步很重要哦，当用户的浏览器不支持canvas，我们需要另外一种降级处理。</p>
<h4>5.遍历每张图片</h4>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">//遍历每张图片</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#slideshow img</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">each</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//第一张图片时先设置下幻灯片的宽高（将图片的宽高缓存起来，供其他代码调用）</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Gray;">!</span><span style="color: Blue;">slideshow</span><span style="color: Gray;">.</span><span style="color: Blue;">width</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">slideshow</span><span style="color: Gray;">.</span><span style="color: Blue;">width</span><span style="color: Gray;"> = </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">width</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">slideshow</span><span style="color: Gray;">.</span><span style="color: Blue;">height</span><span style="color: Gray;"> = </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">height</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//在图片之前产生canvas</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">createCanvasOverlay</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li></ol></div>
<p>这里有二步操作：</p>
<ul>
<li>将图片尺寸写入缓存变量slideshow，供日后调用</li>
<li>执行createCanvasOverlay()函数，插入canvas</li>
</ul>
<h4>6.创造canvas对像</h4>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp;&nbsp; * 创造canvas对像</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; &nbsp; * @param {Object} image 图片</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp;&nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">createCanvasOverlay</span><span style="color: Olive;">(</span><span style="color: Blue;">image</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//创建canvas元素</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">canvas</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = </span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">createElement</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">canvas</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//获取2d canvas上下文（如果不支持canvas，这个对象是不存在的）</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">canvasContext</span><span style="color: Gray;">&nbsp; &nbsp; = </span><span style="color: Blue;">canvas</span><span style="color: Gray;">.</span><span style="color: Blue;">getContext</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">2d</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// 设置canvas的宽度和高度</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">canvas</span><span style="color: Gray;">.</span><span style="color: Blue;">width</span><span style="color: Gray;"> = </span><span style="color: Blue;">slideshow</span><span style="color: Gray;">.</span><span style="color: Blue;">width</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">canvas</span><span style="color: Gray;">.</span><span style="color: Blue;">height</span><span style="color: Gray;"> = </span><span style="color: Blue;">slideshow</span><span style="color: Gray;">.</span><span style="color: Blue;">height</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//在canvas内绘制一张图片</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">canvasContext</span><span style="color: Gray;">.</span><span style="color: Blue;">drawImage</span><span style="color: Olive;">(</span><span style="color: Blue;">image</span><span style="color: Gray;">,</span><span style="color: Maroon;">0</span><span style="color: Gray;">,</span><span style="color: Maroon;">0</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//获取canvas图片像素数据，这非常重要</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">imageData</span><span style="color: Gray;">&nbsp; &nbsp; = </span><span style="color: Blue;">canvasContext</span><span style="color: Gray;">.</span><span style="color: Blue;">getImageData</span><span style="color: Olive;">(</span><span style="color: Maroon;">0</span><span style="color: Gray;">,</span><span style="color: Maroon;">0</span><span style="color: Gray;">,</span><span style="color: Blue;">canvas</span><span style="color: Gray;">.</span><span style="color: Blue;">width</span><span style="color: Gray;">,</span><span style="color: Blue;">canvas</span><span style="color: Gray;">.</span><span style="color: Blue;">height</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">data</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; = </span><span style="color: Blue;">imageData</span><span style="color: Gray;">.</span><span style="color: Blue;">data</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// Loop through all the pixels in the imageData array, and modify</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// the red, green, and blue color values.</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//遍历所有的像素并修改红色、绿色、蓝色通道的值，这是整个教程中最难的部分，如果没理解没关系，但希望通过这一个操作，让各位直观的感受canvas像素级操作的强大</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">for</span><span style="color: Olive;">(</span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">i</span><span style="color: Gray;"> = </span><span style="color: Maroon;">0</span><span style="color: Gray;">,</span><span style="color: Blue;">z</span><span style="color: Gray;">=</span><span style="color: Blue;">data</span><span style="color: Gray;">.</span><span style="color: Blue;">length</span><span style="color: Gray;">;</span><span style="color: Blue;">i</span><span style="color: Gray;">&lt;</span><span style="color: Blue;">z</span><span style="color: Gray;">;</span><span style="color: Blue;">i</span><span style="color: Gray;">++</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">data</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: Olive;">((</span><span style="color: Blue;">data</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;"> &lt; </span><span style="color: Maroon;">128</span><span style="color: Olive;">)</span><span style="color: Gray;"> ? </span><span style="color: Olive;">(</span><span style="color: Maroon;">2</span><span style="color: Gray;">*</span><span style="color: Blue;">data</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;">*</span><span style="color: Blue;">data</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">/</span><span style="color: Red;"> 255) : (255 - 2 * (255 - data[i]) * (255 - data[i]) </span><span style="color: #8b0000;">/</span><span style="color: Gray;"> </span><span style="color: Maroon;">255</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">data</span><span style="color: Olive;">[</span><span style="color: Gray;">++</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: Olive;">((</span><span style="color: Blue;">data</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;"> &lt; </span><span style="color: Maroon;">128</span><span style="color: Olive;">)</span><span style="color: Gray;"> ? </span><span style="color: Olive;">(</span><span style="color: Maroon;">2</span><span style="color: Gray;">*</span><span style="color: Blue;">data</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;">*</span><span style="color: Blue;">data</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">/</span><span style="color: Red;"> 255) : (255 - 2 * (255 - data[i]) * (255 - data[i]) </span><span style="color: #8b0000;">/</span><span style="color: Gray;"> </span><span style="color: Maroon;">255</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">data</span><span style="color: Olive;">[</span><span style="color: Gray;">++</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: Olive;">((</span><span style="color: Blue;">data</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;"> &lt; </span><span style="color: Maroon;">128</span><span style="color: Olive;">)</span><span style="color: Gray;"> ? </span><span style="color: Olive;">(</span><span style="color: Maroon;">2</span><span style="color: Gray;">*</span><span style="color: Blue;">data</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;">*</span><span style="color: Blue;">data</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">/</span><span style="color: Red;"> 255) : (255 - 2 * (255 - data[i]) * (255 - data[i]) </span><span style="color: #8b0000;">/</span><span style="color: Gray;"> </span><span style="color: Maroon;">255</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//为了更好的说明，这里明河加入颜色反转效果，可以把上面的代码去掉，换成下面的试下</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">/*data[i] = 255 - data[i];</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; data[++i] = 255 - data[++i];</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; data[++i] = 255 - data[++i];*/</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ++</span><span style="color: Blue;">i</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//重新应用下像素数据，后面二个参数是x\y坐标值</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">canvasContext</span><span style="color: Gray;">.</span><span style="color: Blue;">putImageData</span><span style="color: Olive;">(</span><span style="color: Blue;">imageData</span><span style="color: Gray;">,</span><span style="color: Maroon;">0</span><span style="color: Gray;">,</span><span style="color: Maroon;">0</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//将canvas插入到图片前面</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">image</span><span style="color: Gray;">.</span><span style="color: Blue;">parentNode</span><span style="color: Gray;">.</span><span style="color: Blue;">insertBefore</span><span style="color: Olive;">(</span><span style="color: Blue;">canvas</span><span style="color: Gray;">,</span><span style="color: Blue;">image</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li></ol></div>
<p>这是教程代码的关键部分。我们一步一步来看。</p>
<h5>1)创建个canvas元素</h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">//创建canvas元素</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">canvas</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = </span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">createElement</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">canvas</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//获取2d canvas上下文（如果不支持canvas，这个对象是不存在的）</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">canvasContext</span><span style="color: Gray;">&nbsp; &nbsp; = </span><span style="color: Blue;">canvas</span><span style="color: Gray;">.</span><span style="color: Blue;">getContext</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">2d</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// 设置canvas的宽度和高度</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">canvas</span><span style="color: Gray;">.</span><span style="color: Blue;">width</span><span style="color: Gray;"> = </span><span style="color: Blue;">slideshow</span><span style="color: Gray;">.</span><span style="color: Blue;">width</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">canvas</span><span style="color: Gray;">.</span><span style="color: Blue;">height</span><span style="color: Gray;"> = </span><span style="color: Blue;">slideshow</span><span style="color: Gray;">.</span><span style="color: Blue;">height</span><span style="color: Gray;">;</span></li></ol></div>
<p>设置canvas的尺寸等于图片尺寸，正好遮住图片，当切换图片时，先出现canvas（canvas的图片是修改过的高对比度的图片）。最后我们输出的节点如下：<br />
<a href="http://www.36ria.com/3994/slide-show-2" rel="attachment wp-att-4021"><img src="http://www.36ria.com/wp-content/uploads/2011/04/slide-show-2.png" alt="" title="slide-show-2" width="424" height="63" class="alignnone size-full wp-image-4021" /></a><br />
想要使用canvas的API，请先获取2d canvas上下文，这非常重要，所有基于canvas的操作都基于<strong>getContext(“2d”)</strong>。</p>
<h5>2)向canvas内插入图片</h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">//在canvas内绘制一张图片</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">canvasContext</span><span style="color: Gray;">.</span><span style="color: Blue;">drawImage</span><span style="color: Olive;">(</span><span style="color: Blue;">image</span><span style="color: Gray;">,</span><span style="color: Maroon;">0</span><span style="color: Gray;">,</span><span style="color: Maroon;">0</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<p>严重推荐阅读：<a href="http://kb.operachina.com/node/190#insertingimages">http://kb.operachina.com/node/190#insertingimages</a>。<br />
drawImage方法允许在 canvas 中插入图像，共有九个参数（恐怖吧&#8230;常用的是前面三个）：</p>
<ol>
<li>图片对象</li>
<li>x轴坐标</li>
<li>y轴坐标</li>
<li>图像宽度</li>
<li>图像高度</li>
</ol>
<p>之前说过，在canvas中插入图像的优势，在于可以实现像素级的操作，比如这里我们要加强图像的对比度。</p>
<h5>3)获取canvas图片像素数据</h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">//获取canvas图片像素数据，这非常重要</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">imageData</span><span style="color: Gray;">&nbsp; &nbsp; = </span><span style="color: Blue;">canvasContext</span><span style="color: Gray;">.</span><span style="color: Blue;">getImageData</span><span style="color: Olive;">(</span><span style="color: Maroon;">0</span><span style="color: Gray;">,</span><span style="color: Maroon;">0</span><span style="color: Gray;">,</span><span style="color: Blue;">canvas</span><span style="color: Gray;">.</span><span style="color: Blue;">width</span><span style="color: Gray;">,</span><span style="color: Blue;">canvas</span><span style="color: Gray;">.</span><span style="color: Blue;">height</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">data</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; = </span><span style="color: Blue;">imageData</span><span style="color: Gray;">.</span><span style="color: Blue;">data</span><span style="color: Gray;">;</span></li></ol></div>
<p>getImageData方法，将获取canvas图片像素数据，此对象有个data数组，用于存放像素数据。getImageData共有四个参数：x坐标、y坐标、宽度、高度。</p>
<h5>4)强化图像对比度</h5>
<p>这段代码有点复杂，特别是对比度强化处理</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">//遍历所有的像素并修改红色、绿色、蓝色通道的值，这是整个教程中最难的部分，如果没理解没关系，但希望通过这一个操作，让各位直观的感受canvas像素级操作的强大</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">for</span><span style="color: Olive;">(</span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">i</span><span style="color: Gray;"> = </span><span style="color: Maroon;">0</span><span style="color: Gray;">,</span><span style="color: Blue;">z</span><span style="color: Gray;">=</span><span style="color: Blue;">data</span><span style="color: Gray;">.</span><span style="color: Blue;">length</span><span style="color: Gray;">;</span><span style="color: Blue;">i</span><span style="color: Gray;">&lt;</span><span style="color: Blue;">z</span><span style="color: Gray;">;</span><span style="color: Blue;">i</span><span style="color: Gray;">++</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">data</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: Olive;">((</span><span style="color: Blue;">data</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;"> &lt; </span><span style="color: Maroon;">128</span><span style="color: Olive;">)</span><span style="color: Gray;"> ? </span><span style="color: Olive;">(</span><span style="color: Maroon;">2</span><span style="color: Gray;">*</span><span style="color: Blue;">data</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;">*</span><span style="color: Blue;">data</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">/</span><span style="color: Red;"> 255) : (255 - 2 * (255 - data[i]) * (255 - data[i]) </span><span style="color: #8b0000;">/</span><span style="color: Gray;"> </span><span style="color: Maroon;">255</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">data</span><span style="color: Olive;">[</span><span style="color: Gray;">++</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: Olive;">((</span><span style="color: Blue;">data</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;"> &lt; </span><span style="color: Maroon;">128</span><span style="color: Olive;">)</span><span style="color: Gray;"> ? </span><span style="color: Olive;">(</span><span style="color: Maroon;">2</span><span style="color: Gray;">*</span><span style="color: Blue;">data</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;">*</span><span style="color: Blue;">data</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">/</span><span style="color: Red;"> 255) : (255 - 2 * (255 - data[i]) * (255 - data[i]) </span><span style="color: #8b0000;">/</span><span style="color: Gray;"> </span><span style="color: Maroon;">255</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">data</span><span style="color: Olive;">[</span><span style="color: Gray;">++</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: Olive;">((</span><span style="color: Blue;">data</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;"> &lt; </span><span style="color: Maroon;">128</span><span style="color: Olive;">)</span><span style="color: Gray;"> ? </span><span style="color: Olive;">(</span><span style="color: Maroon;">2</span><span style="color: Gray;">*</span><span style="color: Blue;">data</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;">*</span><span style="color: Blue;">data</span><span style="color: Olive;">[</span><span style="color: Blue;">i</span><span style="color: Olive;">]</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">/</span><span style="color: Red;"> 255) : (255 - 2 * (255 - data[i]) * (255 - data[i]) </span><span style="color: #8b0000;">/</span><span style="color: Gray;"> </span><span style="color: Maroon;">255</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ++</span><span style="color: Blue;">i</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li></ol></div>
<p>来着photoshop强化对比度的算法，如果这个算法没弄明白，没关系，只要记得有这样的用法即可。简单说明下原理：强化对比度，实际是处理红（data[i]）、绿（data[i+1]）、蓝（data[i+2]）三个通道数据，大部分对图像像素数据，更准确的将应该是矩阵的处理，实际上都是对三个通道的处理。<br />
说真的，这个算法内部细节的含义，明河也不清楚，欢迎讨论。</p>
<h5>5)重新输出图像像素</h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">//重新应用下像素数据，后面二个参数是x\y坐标值</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">canvasContext</span><span style="color: Gray;">.</span><span style="color: Blue;">putImageData</span><span style="color: Olive;">(</span><span style="color: Blue;">imageData</span><span style="color: Gray;">,</span><span style="color: Maroon;">0</span><span style="color: Gray;">,</span><span style="color: Maroon;">0</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<h5>6)将canvas插入到DOM中</h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">//将canvas插入到图片前面</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">image</span><span style="color: Gray;">.</span><span style="color: Blue;">parentNode</span><span style="color: Gray;">.</span><span style="color: Blue;">insertBefore</span><span style="color: Olive;">(</span><span style="color: Blue;">canvas</span><span style="color: Gray;">,</span><span style="color: Blue;">image</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<h4>7.监听箭头切换幻灯片事件</h4>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#slideshow .arrow</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">click</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">li</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = </span><span style="color: Blue;">slides</span><span style="color: Gray;">.</span><span style="color: Blue;">eq</span><span style="color: Olive;">(</span><span style="color: Blue;">current</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">canvas</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; = </span><span style="color: Blue;">li</span><span style="color: Gray;">.</span><span style="color: Blue;">find</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">canvas</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nextIndex</span><span style="color: Gray;">&nbsp; &nbsp; = </span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//下一张</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">hasClass</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">next</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nextIndex</span><span style="color: Gray;"> = </span><span style="color: Blue;">current</span><span style="color: Gray;"> &gt;= </span><span style="color: Blue;">slides</span><span style="color: Gray;">.</span><span style="color: Blue;">length</span><span style="color: Gray;">-</span><span style="color: Maroon;">1</span><span style="color: Gray;"> ? </span><span style="color: Maroon;">0</span><span style="color: Gray;"> : </span><span style="color: Blue;">current</span><span style="color: Gray;">+</span><span style="color: Maroon;">1</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//上一张</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">else</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nextIndex</span><span style="color: Gray;"> = </span><span style="color: Blue;">current</span><span style="color: Gray;"> &lt;= </span><span style="color: Maroon;">0</span><span style="color: Gray;"> ? </span><span style="color: Blue;">slides</span><span style="color: Gray;">.</span><span style="color: Blue;">length</span><span style="color: Gray;">-</span><span style="color: Maroon;">1</span><span style="color: Gray;"> : </span><span style="color: Blue;">current</span><span style="color: Gray;">-</span><span style="color: Maroon;">1</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">next</span><span style="color: Gray;"> = </span><span style="color: Blue;">slides</span><span style="color: Gray;">.</span><span style="color: Blue;">eq</span><span style="color: Olive;">(</span><span style="color: Blue;">nextIndex</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//支持canvas的情况</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Blue;">supportCanvas</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//渐现canvas</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">canvas</span><span style="color: Gray;">.</span><span style="color: Blue;">fadeIn</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//显示下个容器</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">next</span><span style="color: Gray;">.</span><span style="color: Blue;">show</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">current</span><span style="color: Gray;"> = </span><span style="color: Blue;">nextIndex</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//隐藏当前图片容器，并移除激活样式，给新出现的图片容器加上激活样式</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">li</span><span style="color: Gray;">.</span><span style="color: Blue;">fadeOut</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">li</span><span style="color: Gray;">.</span><span style="color: Blue;">removeClass</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">slideActive</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">canvas</span><span style="color: Gray;">.</span><span style="color: Blue;">hide</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">next</span><span style="color: Gray;">.</span><span style="color: Blue;">addClass</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">slideActive</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">else</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//如果浏览器不支持canvas只做简单的显隐处理</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">current</span><span style="color: Gray;">=</span><span style="color: Blue;">nextIndex</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">next</span><span style="color: Gray;">.</span><span style="color: Blue;">addClass</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">slideActive</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">show</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">li</span><span style="color: Gray;">.</span><span style="color: Blue;">removeClass</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">slideActive</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">hide</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li></ol></div>
<p>这代码相当简单多了。这里有个推荐学习的技巧，将next和prev方法合并，其实不管是next还是prev方法执行的动作都是类似的，我们根据按钮是否带有“next”样式来判断是上一张还是下一张。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">//下一张</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">hasClass</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">next</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nextIndex</span><span style="color: Gray;"> = </span><span style="color: Blue;">current</span><span style="color: Gray;"> &gt;= </span><span style="color: Blue;">slides</span><span style="color: Gray;">.</span><span style="color: Blue;">length</span><span style="color: Gray;">-</span><span style="color: Maroon;">1</span><span style="color: Gray;"> ? </span><span style="color: Maroon;">0</span><span style="color: Gray;"> : </span><span style="color: Blue;">current</span><span style="color: Gray;">+</span><span style="color: Maroon;">1</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//上一张</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">else</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nextIndex</span><span style="color: Gray;"> = </span><span style="color: Blue;">current</span><span style="color: Gray;"> &lt;= </span><span style="color: Maroon;">0</span><span style="color: Gray;"> ? </span><span style="color: Blue;">slides</span><span style="color: Gray;">.</span><span style="color: Blue;">length</span><span style="color: Gray;">-</span><span style="color: Maroon;">1</span><span style="color: Gray;"> : </span><span style="color: Blue;">current</span><span style="color: Gray;">-</span><span style="color: Maroon;">1</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li></ol></div>
<h4>8.轮播幻灯片</h4>
<p>轮播幻灯片，实际上是定时触发next（下一张箭头）的click事件。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">timeOut</span><span style="color: Gray;"> = </span><span style="color: Green;">null</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#slideshow .arrow</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">click</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Blue;">e</span><span style="color: Gray;">,</span><span style="color: Blue;">simulated</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//点击箭头，清除定时器</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Gray;">!</span><span style="color: Blue;">simulated</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">clearTimeout</span><span style="color: Olive;">(</span><span style="color: Blue;">timeOut</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">autoAdvance</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//触发箭头点击事件，当第二个参数为false时，清理定时器</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#slideshow .next</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">trigger</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">click</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Olive;">[</span><span style="color: Green;">true</span><span style="color: Olive;">])</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//5秒定时轮放</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">timeOut</span><span style="color: Gray;"> = </span><span style="color: Blue;">setTimeout</span><span style="color: Olive;">(</span><span style="color: Blue;">autoAdvance</span><span style="color: Gray;">,</span><span style="color: Maroon;">5000</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">})()</span><span style="color: Gray;">;</span></li></ol></div>
<p>代码请看<strong>autoadvance.js</strong>。这里有个很有意思的jquery技巧，触发事件，并给事件传递自定义参数。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#slideshow .arrow</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">click</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Blue;">e</span><span style="color: Gray;">,</span><span style="color: Blue;">simulated</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#slideshow .next</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">trigger</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">click</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Olive;">[</span><span style="color: Green;">true</span><span style="color: Olive;">])</span><span style="color: Gray;">;</span></li></ol></div>
<p>trigger接受第二个参数，并且是数组类型，分别对应事件方法的第二至N个参数，比如这里的true对应simulated，事件内部根据simulated值做相应的处理。</p>
<h4>9.明河结语</h4>
<p>这篇教程有点长&#8230;..内容还是很丰富的，算是jquery和canvas实战性比较强的教程，希望大家喜欢，如果你对代码有任何疑问，都可以给明河留言，明天就是清明假期了，祝大家假期愉快！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/3994/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>zoomy—jquery图片放大镜插件</title>
		<link>http://www.36ria.com/3985</link>
		<comments>http://www.36ria.com/3985#comments</comments>
		<pubDate>Mon, 28 Mar 2011 10:28:25 +0000</pubDate>
		<dc:creator>明河共影</dc:creator>
				<category><![CDATA[jquery插件]]></category>
		<category><![CDATA[jquery图片放大镜插件]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=3985</guid>
		<description><![CDATA[很久没介绍jquery方面的东西了，今天偶然发现了一个相当不错的jquery图片放大镜插件：zoomy，分享给给位。 使用上非常简单。 1.引入jquery和插件 &#60;script type=&#34;text/javascript&#34; src=&#34;http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js&#34;&#62;&#60;/script&#62; &#60;link&#160;type=&#34;text/css&#34; rel=&#34;stylesheet&#34; href=&#34;path-to/zoom1.0.css&#34;/&#62; &#60;script&#160;type=&#34;text/javascript&#34; src=&#34;path-to/......]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.36ria.com/wp-content/uploads/2011/03/zoomy.png" alt="" title="zoomy" width="640" height="200" class="alignleft size-full wp-image-3986" /><br />
很久没介绍jquery方面的东西了，今天偶然发现了一个相当不错的jquery图片放大镜插件：<strong>zoomy</strong>，分享给给位。</p>
<ul class="tow-columns clearfix">
<li class="l"><a target="_blank" class="btn-view-demo" href="http://redeyeoperations.com/plugins/zoomy/"></a></li>
<li class="l"><a class="btn-download" href="http://redeyeoperations.com/plugins/zoomy/zoomy1.0.zip"></a></li>
</ul>
<p>使用上非常简单。</p>
<h4>1.引入jquery和插件</h4>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">script</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/javascript</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">link</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/css</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">rel</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">stylesheet</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">path-to/zoom1.0.css</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">script</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/javascript</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">path-to/zoomy1.0.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span></li></ol></div>
<h4>2.建立类似如下的html结构</h4>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">a</span><span style="color: Gray;"> </span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">zoomImg.jpg</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">zoom</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">img</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">displayImg.jpg</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;</span></li></ol></div>
<p>a的路径指向大图路径。</p>
<h4>3.初始化</h4>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">.zoom</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">zoomy</span><span style="color: Olive;">({</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">zoomSize</span><span style="color: Gray;">: </span><span style="color: Maroon;">200</span><span style="color: Gray;">, </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">round</span><span style="color: Gray;">: </span><span style="color: Green;">true</span><span style="color: Gray;">, </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">glare</span><span style="color: Gray;">: </span><span style="color: Green;">true</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">zoomText</span><span style="color: Gray;">: </span><span style="color: #8b0000;">'</span><span style="color: Red;">click to Zoom</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li></ol></div>
<h4>4.原理简述</h4>
<p>图片放大镜的原理并不复杂，当鼠标滑过图片时，不存在放大镜层，创建一个放大镜层，这个层的背景图片指向大图，当你的鼠标在图片移动时候，鼠标坐标改变了，同时改变放大镜层背景图片的位移。<br />
当然，实际的情况会要复杂的多，你要处理下边界，不能让你的放大镜超越可视图片的边界。<br />
zoomy有个有意思的放大镜层，是完全使用css3完成的，效果如下<br />
<img src="http://www.36ria.com/wp-content/uploads/2011/03/zoomy-2.png" alt="" title="zoomy-2" width="205" height="191" class="alignleft size-full wp-image-3987" /><br />
圆形的放大镜层，是使用css3的圆角属性生成的，而圆形内部还有一个白色半透明的圆形层，再加上阴影，就形成了比较逼真的放大镜效果。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">.zoomy</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">position:</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">absolute</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">display:</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">none</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">background-repeat:</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">no-repeat</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; -</span><span style="color: Green;">webkit-box-shadow:</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">5</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">10</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: #00008b;">#000</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; -</span><span style="color: Green;">moz-box-shadow:</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">5</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">10</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: #00008b;">#000</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">border:</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">1</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Red;">solid</span><span style="color: Gray;"> </span><span style="color: #00008b;">#999</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">line-height:</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">100</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">text-align:</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">center</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">background-image:</span><span style="color: Gray;"> url(loading.gif)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">background-position:</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">center</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">background-color:</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">#fff</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">z-index:</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">1000</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">overflow:</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">hidden</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">.zoomy</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">span</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">display:</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">block</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">margin:</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">5</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Red;">auto</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">background:</span><span style="color: Gray;"> -moz-linear-gradient(</span><span style="color: Red;">top</span><span style="color: Gray;">, rgba(</span><span style="color: Maroon;">255</span><span style="color: Gray;">,</span><span style="color: Maroon;">255</span><span style="color: Gray;">,</span><span style="color: Maroon;">255</span><span style="color: Gray;">,</span><span style="color: Maroon;">.61</span><span style="color: Gray;">) </span><span style="color: Maroon;">0</span><span style="color: Red;">%</span><span style="color: Gray;">, rgba(</span><span style="color: Maroon;">255</span><span style="color: Gray;">,</span><span style="color: Maroon;">255</span><span style="color: Gray;">,</span><span style="color: Maroon;">255</span><span style="color: Gray;">,</span><span style="color: Maroon;">0</span><span style="color: Gray;">) </span><span style="color: Maroon;">24</span><span style="color: Red;">%</span><span style="color: Gray;">, rgba(</span><span style="color: Maroon;">255</span><span style="color: Gray;">,</span><span style="color: Maroon;">255</span><span style="color: Gray;">,</span><span style="color: Maroon;">255</span><span style="color: Gray;">,</span><span style="color: Maroon;">0</span><span style="color: Gray;">) </span><span style="color: Maroon;">71</span><span style="color: Red;">%</span><span style="color: Gray;">, rgba(</span><span style="color: Maroon;">255</span><span style="color: Gray;">,</span><span style="color: Maroon;">255</span><span style="color: Gray;">,</span><span style="color: Maroon;">255</span><span style="color: Gray;">,</span><span style="color: Maroon;">.61</span><span style="color: Gray;">) </span><span style="color: Maroon;">100</span><span style="color: Red;">%</span><span style="color: Gray;">)</span><span style="color: Gray;">; /</span><span style="color: Blue;">*</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">firefox</span><span style="color: Gray;"> </span><span style="color: Blue;">*</span><span style="color: Gray;">/</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">background:</span><span style="color: Gray;"> -webkit-gradient(linear, </span><span style="color: Red;">left</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">top</span><span style="color: Gray;">, </span><span style="color: Red;">left</span><span style="color: Gray;"> </span><span style="color: Red;">bottom</span><span style="color: Gray;">, color-stop(</span><span style="color: Maroon;">0</span><span style="color: Red;">%</span><span style="color: Gray;">,rgba(</span><span style="color: Maroon;">255</span><span style="color: Gray;">,</span><span style="color: Maroon;">255</span><span style="color: Gray;">,</span><span style="color: Maroon;">255</span><span style="color: Gray;">,</span><span style="color: Maroon;">.61</span><span style="color: Gray;">)), color-stop(</span><span style="color: Maroon;">24</span><span style="color: Red;">%</span><span style="color: Gray;">,rgba(</span><span style="color: Maroon;">255</span><span style="color: Gray;">,</span><span style="color: Maroon;">255</span><span style="color: Gray;">,</span><span style="color: Maroon;">255</span><span style="color: Gray;">,</span><span style="color: Maroon;">0</span><span style="color: Gray;">)), color-stop(</span><span style="color: Maroon;">71</span><span style="color: Red;">%</span><span style="color: Gray;">,rgba(</span><span style="color: Maroon;">255</span><span style="color: Gray;">,</span><span style="color: Maroon;">255</span><span style="color: Gray;">,</span><span style="color: Maroon;">255</span><span style="color: Gray;">,</span><span style="color: Maroon;">0</span><span style="color: Gray;">)), color-stop(</span><span style="color: Maroon;">100</span><span style="color: Red;">%</span><span style="color: Gray;">,rgba(</span><span style="color: Maroon;">255</span><span style="color: Gray;">,</span><span style="color: Maroon;">255</span><span style="color: Gray;">,</span><span style="color: Maroon;">255</span><span style="color: Gray;">,</span><span style="color: Maroon;">.61</span><span style="color: Gray;">)))</span><span style="color: Gray;">; /</span><span style="color: Blue;">*</span><span style="color: Gray;"> </span><span style="color: Blue;">webkit</span><span style="color: Gray;"> </span><span style="color: Blue;">*</span><span style="color: Gray;">/</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">.zoomBar</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">font-family:</span><span style="color: Gray;"> arial, helvetica</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">color:</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">#fff</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">text-decoration:</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">none</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">display:</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">block</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">position:</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">absolute</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">bottom:</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">left:</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">0</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">background:</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">#000</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">border-width:</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">1</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">1</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">border-style:</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">solid</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">border-color:</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">#000000</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">padding:</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">5</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">10</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; -</span><span style="color: Green;">webkit-border-radius:</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Maroon;">5</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; -</span><span style="color: Green;">moz-border-radius:</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Maroon;">5</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">opacity:</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">.8</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">filter:</span><span style="color: Gray;">alpha(opacity=</span><span style="color: Maroon;">80</span><span style="color: Gray;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/3985/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>使用jquery制作ajax提交表单时的交互按钮</title>
		<link>http://www.36ria.com/3886</link>
		<comments>http://www.36ria.com/3886#comments</comments>
		<pubDate>Sat, 19 Feb 2011 13:56:35 +0000</pubDate>
		<dc:creator>明河共影</dc:creator>
				<category><![CDATA[jquery教程]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[表单]]></category>
		<category><![CDATA[表单设计]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=3886</guid>
		<description><![CDATA[当你的表单使用ajax来提交的时候，有一个点要关注：防止用户重复点击提交按钮，同时要跟用户一个良好的交互反馈，比如点击提交后，有“正在提交中&#8230;.”的提示或者出现一张loading图片。 在这个demo很好的展示ajax表单提交时的按钮交互处理，同时代码也不会特别复杂，算是一个学习jquery的不错demo，原文请看《Create a Simple Interactive CSS Button with jQuery》。 1.构建一个简单表......]]></description>
			<content:encoded><![CDATA[<p>当你的表单使用ajax来提交的时候，有一个点要关注：防止用户重复点击提交按钮，同时要跟用户一个良好的交互反馈，比如点击提交后，有“正在提交中&#8230;.”的提示或者出现一张loading图片。</p>
<p>在这个demo很好的展示ajax表单提交时的按钮交互处理，同时代码也不会特别复杂，算是一个学习jquery的不错demo，原文请看《<a href="http://www.queness.com/post/3157/create-a-simple-interactive-css-button-with-jquery">Create a Simple Interactive CSS Button with jQuery</a>》。</p>
<ul class="tow-columns clearfix">
<li class="l"><a href="http://www.queness.com/resources/html/button/index.html" class="btn-view-demo" target="_blank"></a></li>
<li class="l"><a href="http://www.36ria.com/wp-content/plugins/download-monitor/download.php?id=207" title="名称：jquery-ajax-form-button，下载次数：222，文件大小：24.86 kB" class="btn-download">点此下载</a></li>
</ul>
<h4>1.构建一个简单表单</h4>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">form</span><span style="color: Gray;"> </span><span style="color: #00008b;">method</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">post</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">action</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">subscribeForm</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">fieldset</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">label</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">Name: </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">label</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">input</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">effect</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">name</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">fieldset</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">fieldset</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">label</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">Email: </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">label</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">input</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">effect</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">email</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">fieldset</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">button</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">input</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">submit</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">value</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Subscribe</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">subscribeForm</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">form</span><span style="color: Olive;">&gt;</span></li></ol></div>
<p><img class="alignleft size-full wp-image-3887" title="button" src="http://www.36ria.com/wp-content/uploads/2011/02/button.gif" alt="" width="600" height="250" /><br />
没什么太特别的地方，接下来看下表单样式，特别留意提交按钮。</p>
<h4>2.表单样式</h4>
<p>按钮样式设置：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">#button</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">margin-top:</span><span style="color: Maroon;">10</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">padding-right:</span><span style="color: Maroon;">20</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">text-align:</span><span style="color: Red;">right</span><span style="color: Gray;">;&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">#button</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">input</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">margin:</span><span style="color: Maroon;">0</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">auto</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">a.cssSubmitButton</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">font-size:</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">12</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">background:</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">#fff</span><span style="color: Gray;"> </span><span style="color: Red;">no-repeat</span><span style="color: Gray;"> </span><span style="color: Maroon;">4</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">5</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">display:</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">inline-block</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">padding:</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">5</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">20</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">6</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">color:</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">#333</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">border:</span><span style="color: Maroon;">1</span><span style="color: Red;">px</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">solid</span><span style="color: Gray;"> </span><span style="color: #00008b;">#ccc</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">text-decoration:</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">none</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">font-weight:</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">bold</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">line-height:</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">1.2</span><span style="color: Red;">em</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">border-radius:</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">15</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -</span><span style="color: Green;">moz-border-radius:</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">15</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -</span><span style="color: Green;">webkit-border-radius:</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">15</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -</span><span style="color: Green;">moz-box-shadow:</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Maroon;">1</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">3</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: #00008b;">#999</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -</span><span style="color: Green;">webkit-box-shadow:</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Maroon;">1</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">3</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: #00008b;">#999</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">position:</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">relative</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">cursor:</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">pointer</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">outline:</span><span style="color: Red;">none</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">a.cssSubmitButton</span><span style="color: Navy;">:visited</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">a.cssSubmitButton</span><span style="color: Navy;">:hover</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">border:</span><span style="color: Maroon;">1</span><span style="color: Red;">px</span><span style="color: Gray;">&nbsp;</span><span style="color: Red;">solid</span><span style="color: Gray;"> </span><span style="color: #00008b;">#333</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li></ol></div>
<p>cssSubmitButton这个样式，是脚本用a替换input时加上去了，也是说最后输出的按钮其实是个链接，之后会讲到，留言按钮的几种状态：可用、不可用、正在提交、鼠标滑过。按钮样式无视IE&#8230;&#8230;.</p>
<h4>3.js脚本</h4>
<p>以下脚本会发送ajax请求，同时会给按钮添加loading样式：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">value</span><span style="color: Gray;"> = $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#button input</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">val</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">name</span><span style="color: Gray;"> = $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#button input</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">attr</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">name</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//将按钮容器内的input替换成链接，链接伪装成按钮</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#button input</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">remove</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#button</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">html</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&lt;a href=&quot;#&quot; class=&quot;cssSubmitButton&quot; rel=</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> + </span><span style="color: Blue;">name</span><span style="color: Gray;"> + </span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> + </span><span style="color: Blue;">value</span><span style="color: Gray;"> + </span><span style="color: #8b0000;">'</span><span style="color: Red;">&lt;/a&gt;</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//监听单击事件</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#button a</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">live</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">click</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//使用$('form[name=' + $(this).attr('rel') + ']').submit();直接提交表单&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">link</span><span style="color: Gray;"> = $</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//ajax提交表单</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $.</span><span style="color: Blue;">ajax</span><span style="color: Olive;">({</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">url</span><span style="color: Gray;"> : </span><span style="color: #8b0000;">'</span><span style="color: Red;">load.php</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">data</span><span style="color: Gray;">: </span><span style="color: #8b0000;">''</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">type</span><span style="color: Gray;">: </span><span style="color: #8b0000;">'</span><span style="color: Red;">GET</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">cache</span><span style="color: Gray;">: </span><span style="color: #8b0000;">'</span><span style="color: Red;">false</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">beforeSend</span><span style="color: Gray;">: </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//提交前，给链接，添加loading样式</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">link</span><span style="color: Gray;">.</span><span style="color: Blue;">addClass</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">loading</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">success</span><span style="color: Gray;">: </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">link</span><span style="color: Gray;">.</span><span style="color: Blue;">removeClass</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">loading</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">alert</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">Submitted</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li></ol></div>
<p>大功告成！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/3886/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>使用jquery+css3制作旋转效果的幻灯片</title>
		<link>http://www.36ria.com/3835</link>
		<comments>http://www.36ria.com/3835#comments</comments>
		<pubDate>Sat, 22 Jan 2011 06:33:10 +0000</pubDate>
		<dc:creator>明河共影</dc:creator>
				<category><![CDATA[jquery教程]]></category>
		<category><![CDATA[css3教程]]></category>
		<category><![CDATA[jquery幻灯片]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=3835</guid>
		<description><![CDATA[这是tutorialzine上的一篇实战性颇强的教程，明河将其翻译过来，献给各位对css3敢兴趣的朋友。 这篇教程主要演示的是css3的旋转特性，由于浏览器间还是存在差异的，引入了jquery.rotate.js，姑且忽略IE。同时演示了jquery自定义事件的使用。 1.创建一个幻灯片html结构 &#60;div id=&#34;slideShowContainer&#34;&#62; &#160; &#160; &#160; &#160; &#60;div&#160;id=&#34;slideShow&#34;&#62; &#160; &#160; &#160; &#160; &#160; &......]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.36ria.com/wp-content/uploads/2011/01/rotating-slideshow.png" alt="" title="rotating-slideshow" width="640" height="200" class="alignleft size-full wp-image-3836" /><br />
这是<a href="http://tutorialzine.com/2010/11/rotating-slideshow-jquery-css3/">tutorialzine</a>上的一篇实战性颇强的教程，明河将其翻译过来，献给各位对css3敢兴趣的朋友。<br />
这篇教程主要演示的是css3的旋转特性，由于浏览器间还是存在差异的，引入了<strong>jquery.rotate.js</strong>，姑且忽略IE。同时演示了jquery自定义事件的使用。</p>
<ul class="tow-columns clearfix">
<li class="l"><a href="http://www.36ria.com/demo/rotating-slideshow/" class="btn-view-demo" target="_blank"></a></li>
<li class="l"><a href="http://www.36ria.com/wp-content/plugins/download-monitor/download.php?id=204" title="名称：rotating-slideshow，下载次数：144，文件大小：405.19 kB" class="btn-download">点此下载</a></li>
</ul>
<h4>1.创建一个幻灯片html结构</h4>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Gray;"> </span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">slideShowContainer</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">slideShow</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">ul</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">img</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">img/photos/1.jpg</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">width</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">100%</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">alt</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Fish</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">img</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">img/photos/2.jpg</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">width</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">100%</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">alt</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Ancient</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">img</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">img/photos/3.jpg</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">width</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">100%</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">alt</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Industry</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">img</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">img/photos/4.jpg</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">width</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">100%</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">alt</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Rain</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">ul</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">a</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">previousLink</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">#</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Navy;">&amp;raquo;</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">a</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">nextLink</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">#</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Navy;">&amp;laquo;</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li></ol></div>
<p><img src="http://www.36ria.com/wp-content/uploads/2011/01/slideshow_markup.jpg" alt="" title="slideshow_markup" width="620" height="400" class="alignleft size-full wp-image-3837" /><br />
#slideShowContainer容器内的元素全部为绝对定位，这是由交互特点决定的，采用其他定位方式还真不好处理，绝对定位有个问题就是要处理好z-index，尤其是图片容器间的z-index，默认是后面的遮住前面的，但我们需要脚本修正为前面遮住后面的。</p>
<h4>2.关键css代码</h4>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">#slideShow</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">position:</span><span style="color: Red;">absolute</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">height:</span><span style="color: Maroon;">490</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">width:</span><span style="color: Maroon;">490</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">background-color:</span><span style="color: #00008b;">#fff</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">margin:</span><span style="color: Maroon;">10</span><span style="color: Red;">px</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Maroon;">10</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">z-index:</span><span style="color: Maroon;">100</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; -</span><span style="color: Green;">moz-box-shadow:</span><span style="color: Maroon;">0</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Maroon;">10</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: #00008b;">#111</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; -</span><span style="color: Green;">webkit-box-shadow:</span><span style="color: Maroon;">0</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Maroon;">10</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: #00008b;">#111</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">box-shadow:</span><span style="color: Maroon;">0</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Maroon;">10</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: #00008b;">#111</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">#slideShow</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">ul</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">position:</span><span style="color: Red;">absolute</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">top:</span><span style="color: Maroon;">15</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">right:</span><span style="color: Maroon;">15</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">bottom:</span><span style="color: Maroon;">15</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">left:</span><span style="color: Maroon;">15</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">list-style:</span><span style="color: Red;">none</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">overflow:</span><span style="color: Red;">hidden</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">#slideShow</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">li</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">position:</span><span style="color: Red;">absolute</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">top:</span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">left:</span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">width:</span><span style="color: Maroon;">100</span><span style="color: Red;">%</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">height:</span><span style="color: Maroon;">100</span><span style="color: Red;">%</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">#slideShowContainer</span><span style="color: Gray;"> &gt; </span><span style="color: Blue;">a</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">border:</span><span style="color: Red;">none</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">text-decoration:</span><span style="color: Red;">none</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">text-indent:</span><span style="color: Gray;">-</span><span style="color: Maroon;">99999</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">overflow:</span><span style="color: Red;">hidden</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">width:</span><span style="color: Maroon;">36</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">height:</span><span style="color: Maroon;">37</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">background:</span><span style="color: Gray;">url('../img/arrows.png') </span><span style="color: Red;">no-repeat</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">position:</span><span style="color: Red;">absolute</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">top:</span><span style="color: Maroon;">50</span><span style="color: Red;">%</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">margin-top:</span><span style="color: Gray;">-</span><span style="color: Maroon;">21</span><span style="color: Red;">px</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>#slideShow这个层很关键，所有的交互都基于这个层。</p>
<h4>3.js脚本（已加中文注释）</h4>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: Teal;">document</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">ready</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">//幻灯片</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">slideShow</span><span style="color: Gray;"> = $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#slideShow</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">ul</span><span style="color: Gray;"> = </span><span style="color: Blue;">slideShow</span><span style="color: Gray;">.</span><span style="color: Blue;">find</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">ul</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//幻灯片的图片容器</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">li</span><span style="color: Gray;"> = </span><span style="color: Blue;">ul</span><span style="color: Gray;">.</span><span style="color: Blue;">find</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">li</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//图片个数</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">cnt</span><span style="color: Gray;"> = </span><span style="color: Blue;">li</span><span style="color: Gray;">.</span><span style="color: Blue;">length</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">//设置每个图片容器（li）的z-index，递减（采用绝对定位，保证越前面的z-index应该越高）</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">updateZindex</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Gray;">$.</span><span style="color: Blue;">support</span><span style="color: Gray;">.</span><span style="color: Blue;">transform</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//css3旋转</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">li</span><span style="color: Gray;">.</span><span style="color: Blue;">find</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">img</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">css</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">rotate</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Blue;">i</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// 逆时针旋转</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;">-</span><span style="color: Maroon;">90</span><span style="color: Gray;">*</span><span style="color: Blue;">i</span><span style="color: Olive;">)</span><span style="color: Gray;"> + </span><span style="color: #8b0000;">'</span><span style="color: Red;">deg</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//绑定一个自定义事件（参数：方向、角度）</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">slideShow</span><span style="color: Gray;">.</span><span style="color: Blue;">bind</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">rotateContainer</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Blue;">e</span><span style="color: Gray;">,</span><span style="color: Blue;">direction</span><span style="color: Gray;">,</span><span style="color: Blue;">degrees</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//扩大幻灯片容器</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">slideShow</span><span style="color: Gray;">.</span><span style="color: Blue;">animate</span><span style="color: Olive;">({</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">width</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; : </span><span style="color: Maroon;">510</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">height</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; : </span><span style="color: Maroon;">510</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">marginTop</span><span style="color: Gray;">&nbsp; &nbsp; : </span><span style="color: Maroon;">0</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">marginLeft</span><span style="color: Gray;">&nbsp; &nbsp; : </span><span style="color: Maroon;">0</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">fast</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//下一张</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Blue;">direction</span><span style="color: Gray;"> == </span><span style="color: #8b0000;">'</span><span style="color: Red;">next</span><span style="color: #8b0000;">'</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//渐隐第一张图片，并将这张图片添加到最后，同时更新所有li的z-index</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">li:first</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">fadeOut</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">slow</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">remove</span><span style="color: Olive;">()</span><span style="color: Gray;">.</span><span style="color: Blue;">appendTo</span><span style="color: Olive;">(</span><span style="color: Blue;">ul</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">show</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">updateZindex</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//上一张</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">else</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//隐藏最后一张图片，移动这张图片到第一个位置，更新li的z-index，最后渐现该图片</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">liLast</span><span style="color: Gray;"> = $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">li:last</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">hide</span><span style="color: Olive;">()</span><span style="color: Gray;">.</span><span style="color: Blue;">remove</span><span style="color: Olive;">()</span><span style="color: Gray;">.</span><span style="color: Blue;">prependTo</span><span style="color: Olive;">(</span><span style="color: Blue;">ul</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">updateZindex</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">liLast</span><span style="color: Gray;">.</span><span style="color: Blue;">fadeIn</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">slow</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//旋转动画（使用jquery.rotate.js来解决浏览器之间的差异）</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">slideShow</span><span style="color: Gray;">.</span><span style="color: Blue;">animate</span><span style="color: Olive;">({</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">rotate</span><span style="color: Gray;">:</span><span style="color: Teal;">Math</span><span style="color: Gray;">.</span><span style="color: Blue;">round</span><span style="color: Olive;">(</span><span style="color: Gray;">$.</span><span style="color: Blue;">rotate</span><span style="color: Gray;">.</span><span style="color: Blue;">radToDeg</span><span style="color: Olive;">(</span><span style="color: Blue;">slideShow</span><span style="color: Gray;">.</span><span style="color: Blue;">css</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">rotate</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span><span style="color: Gray;">+</span><span style="color: Blue;">degrees</span><span style="color: Olive;">)</span><span style="color: Gray;"> + </span><span style="color: #8b0000;">'</span><span style="color: Red;">deg</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">slow</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">animate</span><span style="color: Olive;">({</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">width</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; : </span><span style="color: Maroon;">490</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">height</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; : </span><span style="color: Maroon;">490</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">marginTop</span><span style="color: Gray;">&nbsp; &nbsp; : </span><span style="color: Maroon;">10</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">marginLeft</span><span style="color: Gray;">&nbsp; &nbsp; : </span><span style="color: Maroon;">10</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">fast</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//绑定二个自定义事件（下一张、上一张）</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">slideShow</span><span style="color: Gray;">.</span><span style="color: Blue;">bind</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">showNext</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//二个参数：方向、角度</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">slideShow</span><span style="color: Gray;">.</span><span style="color: Blue;">trigger</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">rotateContainer</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">next</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Maroon;">90</span><span style="color: Olive;">])</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">slideShow</span><span style="color: Gray;">.</span><span style="color: Blue;">bind</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">showPrevious</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">slideShow</span><span style="color: Gray;">.</span><span style="color: Blue;">trigger</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">rotateContainer</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">previous</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,-</span><span style="color: Maroon;">90</span><span style="color: Olive;">])</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">else</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// IE9以下浏览器，不支持旋转属性，去掉旋转效果</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">slideShow</span><span style="color: Gray;">.</span><span style="color: Blue;">bind</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">showNext</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">li:first</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">fadeOut</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">slow</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">remove</span><span style="color: Olive;">()</span><span style="color: Gray;">.</span><span style="color: Blue;">appendTo</span><span style="color: Olive;">(</span><span style="color: Blue;">ul</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">show</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">updateZindex</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">slideShow</span><span style="color: Gray;">.</span><span style="color: Blue;">bind</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">showPrevious</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">liLast</span><span style="color: Gray;"> = $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">li:last</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">hide</span><span style="color: Olive;">()</span><span style="color: Gray;">.</span><span style="color: Blue;">remove</span><span style="color: Olive;">()</span><span style="color: Gray;">.</span><span style="color: Blue;">prependTo</span><span style="color: Olive;">(</span><span style="color: Blue;">ul</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">updateZindex</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">liLast</span><span style="color: Gray;">.</span><span style="color: Blue;">fadeIn</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">slow</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">//点击上一个箭头</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#previousLink</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">click</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//运动未结束，直接返回</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Blue;">slideShow</span><span style="color: Gray;">.</span><span style="color: Blue;">is</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">:animated</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">false</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//触发自定义事件showPrevious，切换到上一张图片</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">slideShow</span><span style="color: Gray;">.</span><span style="color: Blue;">trigger</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">showPrevious</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">false</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">//点击下一个箭头</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#nextLink</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">click</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//运动未结束，直接返回</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Blue;">slideShow</span><span style="color: Gray;">.</span><span style="color: Blue;">is</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">:animated</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">false</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//触发自定义事件showNext，切换到下一张图片</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">slideShow</span><span style="color: Gray;">.</span><span style="color: Blue;">trigger</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">showNext</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">false</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">//更新li的z-index</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">updateZindex</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//遍历li，让z-index递减</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">ul</span><span style="color: Gray;">.</span><span style="color: Blue;">find</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">li</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">css</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">z-index</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Blue;">i</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">cnt</span><span style="color: Gray;">-</span><span style="color: Blue;">i</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li></ol></div>
<h5>3.1更新图片容器li的z-index</h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">//更新li的z-index</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">updateZindex</span><span style="color: Olive;">(){</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//遍历li，让z-index递减</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">ul</span><span style="color: Gray;">.</span><span style="color: Blue;">find</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">li</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">css</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">z-index</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Blue;">i</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">cnt</span><span style="color: Gray;">-</span><span style="color: Blue;">i</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li></ol></div>
<p>这是很关键的处理步骤，在每次改变图片时都要触发一次。<br />
<img src="http://www.36ria.com/wp-content/uploads/2011/01/rotating-slideshow-3.png" alt="" title="rotating-slideshow-3" width="215" height="149" class="alignleft size-full wp-image-3839" /></p>
<h5>3.2初始默认设置图片的旋转角度的理由</h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">//css3旋转</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">li</span><span style="color: Gray;">.</span><span style="color: Blue;">find</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">img</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">css</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">rotate</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Blue;">i</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// 逆时针旋转</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;">-</span><span style="color: Maroon;">90</span><span style="color: Gray;">*</span><span style="color: Blue;">i</span><span style="color: Olive;">)</span><span style="color: Gray;"> + </span><span style="color: #8b0000;">'</span><span style="color: Red;">deg</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li></ol></div>
<p>外层容器#slideShow旋转了90度，里面的图片自然也跟着旋转了90度，那么最终显示的图片角度是错误的。所以我们需要一个方案，不管容器如何旋转，图片显示时角度都是正确的。所以这里给每个图片加上了旋转。<br />
<img src="http://www.36ria.com/wp-content/uploads/2011/01/rotating-slideshow-2.png" alt="" title="rotating-slideshow-2" width="607" height="218" class="alignleft size-full wp-image-3838" /></p>
<h5>3.3jquery自定义事件的使用</h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">slideShow</span><span style="color: Gray;">.</span><span style="color: Blue;">bind</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">showPrevious</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">slideShow</span><span style="color: Gray;">.</span><span style="color: Blue;">trigger</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">rotateContainer</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">previous</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,-</span><span style="color: Maroon;">90</span><span style="color: Olive;">])</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li></ol></div>
<p>jquery自定义事件很重要，希望朋友们对看下相关教程。这里强烈推荐下《jquery cookbook》，关于jquery事件有非常详细的说明，英文版网上可以载的到。</p>
<h5>3.4jquery.rotate插件的使用</h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">slideShow</span><span style="color: Gray;">.</span><span style="color: Blue;">animate</span><span style="color: Olive;">({</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">rotate</span><span style="color: Gray;">:</span><span style="color: Teal;">Math</span><span style="color: Gray;">.</span><span style="color: Blue;">round</span><span style="color: Olive;">(</span><span style="color: Gray;">$.</span><span style="color: Blue;">rotate</span><span style="color: Gray;">.</span><span style="color: Blue;">radToDeg</span><span style="color: Olive;">(</span><span style="color: Blue;">slideShow</span><span style="color: Gray;">.</span><span style="color: Blue;">css</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">rotate</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span><span style="color: Gray;">+</span><span style="color: Blue;">degrees</span><span style="color: Olive;">)</span><span style="color: Gray;"> + </span><span style="color: #8b0000;">'</span><span style="color: Red;">deg</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">slow</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">animate</span><span style="color: Olive;">({</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">width</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; : </span><span style="color: Maroon;">490</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">height</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; : </span><span style="color: Maroon;">490</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">marginTop</span><span style="color: Gray;">&nbsp; &nbsp; : </span><span style="color: Maroon;">10</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">marginLeft</span><span style="color: Gray;">&nbsp; &nbsp; : </span><span style="color: Maroon;">10</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">fast</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<p>上述代码，不止是旋转了容器，同时还改变了容器尺寸（恢复原来容器大小）。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/3835/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Picture Menu — 华丽的jquery滑动幻灯片插件</title>
		<link>http://www.36ria.com/3829</link>
		<comments>http://www.36ria.com/3829#comments</comments>
		<pubDate>Wed, 19 Jan 2011 11:46:27 +0000</pubDate>
		<dc:creator>明河共影</dc:creator>
				<category><![CDATA[jquery插件]]></category>
		<category><![CDATA[jquery幻灯片插件]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=3829</guid>
		<description><![CDATA[明河上次推荐jquery插件，还要追溯到2010年9月了&#8230;&#8230;现在基本上已经不写jquery代码了，但对jquery还有不可割舍的感情，会继续更新jquery的相关教程。今天给大家介绍一款相当不错的jquery滑动幻灯片插件：Picture Menu。滑动效果，明河也曾经完成过，有兴趣的朋友可以猛击《divSlider — jquery滑动门插件（明河作品）》，必须承认Picture Menu的功能比明河写的divSlider来的强，也更......]]></description>
			<content:encoded><![CDATA[<p>明河上次推荐jquery插件，还要追溯到2010年9月了&#8230;&#8230;现在基本上已经不写jquery代码了，但对jquery还有不可割舍的感情，会继续更新jquery的相关教程。今天给大家介绍一款相当不错的jquery滑动幻灯片插件：<strong>Picture Menu</strong>。滑动效果，明河也曾经完成过，有兴趣的朋友可以猛击《<a href="http://www.36ria.com/2012">divSlider — jquery滑动门插件（明河作品）</a>》，必须承认Picture Menu的功能比明河写的divSlider来的强，也更加好用。<br />
<img src="http://www.36ria.com/wp-content/uploads/2011/01/Picture-Menu.png" alt="" title="Picture Menu" width="640" height="122" class="alignleft size-full wp-image-3830" /></p>
<ul class="tow-columns clearfix">
<li class="l"><a href="http://isenne.com/jQuery/pictureMenu/pictureMenu.html" class="btn-view-demo" target="_blank"></a></li>
<li class="l"><a href="http://isenne.com/jQuery/pictureMenu/pictureMenu-1.1.0.rar" title="pictureMenu-1.1" class="btn-download"></a></li>
</ul>
<p>这里明河以最复杂的demo5为例讲解下其API。</p>
<h4>1.建立幻灯片html结构</h4>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Gray;"> </span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">MainMenu5</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">img</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">img/menu-1.png</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">img</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">img/text-1.png</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">ul</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">submenu light</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">a</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">#</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">Submenu 1.1</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">a</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">#</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">Submenu 1.2</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">a</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">#</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">Submenu 1.3</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">a</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">#</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">Submenu 1.4</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">a</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">#</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">Submenu 1.5</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">a</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">#</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">Submenu 1.6</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">ul</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ......</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li></ol></div>
<h4>2.初始化pictureMenu</h4>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">.MainMenu5</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">pictureMenu</span><span style="color: Olive;">({</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">menuHeight</span><span style="color: Gray;">: </span><span style="color: Maroon;">200</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">animateTime</span><span style="color: Gray;">: </span><span style="color: Maroon;">600</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">menuInactiveHide</span><span style="color: Gray;">: </span><span style="color: Maroon;">0.2</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">menuWidthHover</span><span style="color: Gray;">: </span><span style="color: Maroon;">75</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">menuAutoOpen</span><span style="color: Gray;">: </span><span style="color: Maroon;">3</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">leaveActiveOpen</span><span style="color: Gray;">: </span><span style="color: Green;">true</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">leaveActiveOpenCookie</span><span style="color: Gray;">: </span><span style="color: Green;">true</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li></ol></div>
<h4>3.API说明</h4>
<table border="0" cellspacing="0" cellpadding="0" class="tab1">
<thead>
<tr>
<td width="127"><strong>参数</strong></td>
<td width="108"><strong>默认值</strong></td>
<td width="84"><strong>类型</strong></td>
<td width="249"><strong>描述</strong></td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top"><strong>animateTime</strong></td>
<td valign="top">350</td>
<td valign="top">Number</td>
<td valign="top">动画时间（动画速度）</p>
</td>
</tr>
<tr>
<td valign="top"><strong> menuHeight </strong></td>
<td valign="top">150</td>
<td valign="top">Number</td>
<td valign="top">图片列表容器高度</td>
</tr>
<tr>
<td valign="top"><strong>menuWidth</strong></td>
<td valign="top">75</td>
<td valign="top">Number</td>
<td valign="top">单个图片默认显示宽度（不是指容器宽度），当为空时自适应，需要设置<strong>useMenuWidth</strong>为true</td>
</tr>
<tr>
<td valign="top"><strong> useMenuWidth </strong></td>
<td valign="top">true </td>
<td valign="top">Boolean</td>
<td valign="top">允许自定义单个图片显示宽度</td>
</tr>
<tr>
<td valign="top"><strong> menuWidthHover </strong></td>
<td valign="top"> 40</td>
<td valign="top">Number</td>
<td valign="top">非激活图片的宽度</td>
</tr>
<tr>
<td valign="top"><strong> menuActiveWidth </strong></td>
<td valign="top"> 500</td>
<td valign="top">Number</td>
<td valign="top">激活图片的宽度，需要设置<strong>useMenuActiveWidth</strong>为true时才有效</td>
</tr>
<tr>
<td valign="top"><strong> useMenuActiveWidth </strong></td>
<td valign="top"> false</td>
<td valign="top">Boolean</td>
<td valign="top">是否允许自定义激活图片显示宽度</td>
</tr>
<tr>
<td valign="top"><strong> menuInactiveHide </strong></td>
<td valign="top"> 1</td>
<td valign="top">Number</td>
<td valign="top">激活图片的透明度</td>
</tr>
<tr>
<td valign="top"><strong> menuBorder </strong></td>
<td valign="top"> 2</td>
<td valign="top">Number</td>
<td valign="top">二个图片之间的间隔</td>
</tr>
<tr>
<td valign="top"><strong> menuAutoOpen</strong></td>
<td valign="top"> 0 </td>
<td valign="top">Number</td>
<td valign="top">默认激活第几个图片，必须设置<strong>leaveActiveOpen</strong>为true</td>
</tr>
<tr>
<td valign="top"><strong> leaveActiveOpen</strong></td>
<td valign="top"> false </td>
<td valign="top">Boolean</td>
<td valign="top">是否6允许设置默认激活</td>
</tr>
<tr>
<td valign="top"><strong> leaveActiveOpenCookie</strong></td>
<td valign="top"> false </td>
<td valign="top">Boolean</td>
<td valign="top">cookie记录最后激活图片</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/3829/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>前端快讯：jQuery 1.5 Beta降临！正式版不远矣</title>
		<link>http://www.36ria.com/3825</link>
		<comments>http://www.36ria.com/3825#comments</comments>
		<pubDate>Tue, 18 Jan 2011 03:16:37 +0000</pubDate>
		<dc:creator>明河共影</dc:creator>
				<category><![CDATA[jquery]]></category>
		<category><![CDATA[jQuery 1.5]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=3825</guid>
		<description><![CDATA[1月14日是jQuery的诞生日，jquery出道5年，以其易读、近人类逻辑的编程风格迅速成为javascript框架的霸主，必须向jquery的作者John Resig致敬，感谢他，创造了如此优秀的javascript框架。从1.4.4到1.5，从版本的跳跃就可以看出这次的更新内容非常有料！接下来明河为你一一介绍。 1.5的CDN地址：http://code.jquery.com/jquery-1.5b1.js。（非压缩版） jQuery 1.5 Beta的更新内容 1.5的最大更新：支持子......]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-3826" title="jquery1.5" src="http://www.36ria.com/wp-content/uploads/2011/01/jquery1.5.png" alt="" width="640" height="200" /><br />
1月14日是jQuery的诞生日，jquery出道5年，以其易读、近人类逻辑的编程风格迅速成为javascript框架的霸主，必须向jquery的作者<strong>John Resig</strong>致敬，感谢他，创造了如此优秀的javascript框架。从1.4.4到1.5，从版本的跳跃就可以看出这次的更新内容非常有料！接下来明河为你一一介绍。<br />
<a href="http://www.36ria.com/wp-content/plugins/download-monitor/download.php?id=203" title="名称：jQuery 1.5 Beta，下载次数：99，文件大小：57.16 kB" class="btn-download">点此下载</a><br />
1.5的CDN地址：<a href="http://code.jquery.com/jquery-1.5b1.js">http://code.jquery.com/jquery-1.5b1.js</a>。（非压缩版）</p>
<h2>jQuery 1.5 Beta的更新内容</h2>
<h4>1.5的最大更新：支持子类，jquery的继承终于来了！</h4>
<p>官方的更新日记，将ajax模块重写排在第一位，明河倒是觉得支持继承，这才是jQuery 1.5最大的更新！这个功能明河期盼了很久，算是千呼万唤始出来吧。jquery之所以不适合大型复杂的web开发的一个原因就是继承机制的缺失，你写3-4个jquery插件，就会发现，代码重复率很高（插件与插件间很难继承），代码组织上有点力不从心的感觉，到现在明河甚至很少写jquery代码了。jquery的这个更新非常及时，赞一个。<br />
更详细的使用方法，明河会在日后的教程中放出。其实现在我也不知道该如何调用&#8230;..O(∩_∩)O哈！</p>
<h4>1.5的最人性化更新：ajax模块变了！</h4>
<p>1.需要留意jQuery.ajax()这个函数变了！（可以放心的是依旧兼容旧的调用方式），旧的ajax请求url是写在参数{}内的，比如<strong>jQuery.ajax({url:”36ria.com”})</strong>，现在改了，<strong>jQuery.ajax(&#8217;36ria.com&#8217;,{success:function(){}});</strong>，这是接口的明显变化，其实内部逻辑实现变化也是很大的，详见1.5源代码（留意jXHR这个类）。<br />
2.每个请求类型都支持设置超时时间和中止，还有个变化是在简化的jQuery.ajax()的API中，比如<strong>jQuery.getJson()</strong>，回调函数不必写在()参数内，你可以使用链式调用的方式在后面追加回调函数，比如<strong>jQuery.getJson().success(function(){})</strong>，（jquery有个很不好的地方，回调函数太多了，容易造成阅读困难，可以看出jquery小组在试图改变这一问题。）<br />
3.以数组的方式来传递ajax的成功、失败、完成等回调函数，关于这一点，信息量太少，明河无法臆断其具体使用过程，等如后测试后奉上相关内容。</p>
<h4>明河结语</h4>
<p>关于jQuery 1.5 Beta的简单介绍到此结束，jQuery 1.5 Beta还有其他方面的更新，由于是比较细节的内容，明河就不再说明，有兴趣的朋友，请看<a href="http://blog.jquery.com/2011/01/14/jquery-1-5-beta-1-released/">官方的更新日记</a>。日后会有相关教程放出，期待1.5正式版！（这个版本只建议用于学习）</p>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/3825/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>wijmo—强大的jquery UI组件包</title>
		<link>http://www.36ria.com/3690</link>
		<comments>http://www.36ria.com/3690#comments</comments>
		<pubDate>Wed, 08 Dec 2010 11:18:30 +0000</pubDate>
		<dc:creator>明河共影</dc:creator>
				<category><![CDATA[jquery]]></category>
		<category><![CDATA[jquery UI]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=3690</guid>
		<description><![CDATA[wijmo是由第三方开发的jquery UI包，比jquery官方的UI组件更为丰富，共有30个UI组件,除了涵盖jquery官方的UI大部分组件之外，图表组件、表单美化组件、表格grid组件都是很有看点的。特别指出的是wijmo在chrome浏览器下，样式存在bug，有兴趣的朋友可以试下。 wijmo的首页：http://wijmo.com/ wijmo的demo：http://wijmo.com/demos/ wijmo的API文档：http://wijmo.com/wiki/index.php/Main_Page 来几张wijmo的帅气截图......]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-3691" title="wimo" src="http://www.36ria.com/wp-content/uploads/2010/12/wimo.png" alt="" width="645" height="311" /></p>
<p>wijmo是由第三方开发的jquery UI包，比jquery官方的UI组件更为丰富，共有30个UI组件,除了涵盖jquery官方的UI大部分组件之外，图表组件、表单美化组件、表格grid组件都是很有看点的。特别指出的是wijmo在chrome浏览器下，样式存在bug，有兴趣的朋友可以试下。</p>
<p>wijmo的首页：<a href="http://wijmo.com/" target="_blank">http://wijmo.com/</a></p>
<p>wijmo的demo：<a href="http://wijmo.com/demos/" target="_blank">http://wijmo.com/demos/</a></p>
<p>wijmo的API文档：<a href="http://wijmo.com/wiki/index.php/Main_Page" target="_blank">http://wijmo.com/wiki/index.php/Main_Page</a></p>
<p>来几张wijmo的帅气截图：</p>
<p><img class="alignleft size-full wp-image-3692" title="Calendar" src="http://www.36ria.com/wp-content/uploads/2010/12/Calendar.png" alt="" width="239" height="244" /></p>
<p><img class="alignleft size-full wp-image-3693" title="chart" src="http://www.36ria.com/wp-content/uploads/2010/12/chart.png" alt="" width="505" height="282" /></p>
<p><img class="alignleft size-full wp-image-3694" title="Snap4" src="http://www.36ria.com/wp-content/uploads/2010/12/Snap4.png" alt="" width="390" height="249" /></p>
<p>wijmo的组件调用风格，基本上就是jquery插件的调用风格，使用过jquery插件的朋友就很容易上手。在API方面wijmo还是有待提高的，强大性上不如jquery的官方UI（jquery的官方UI支持模板的切换，这点很好很强大），还有很大进步的空间，但wijmo的图表组件式值得肯定的，是个好东西，如果你有图表方面的需求，又找不到合适的jquery图表插件，不妨试下wijmo的Charts。</p>
<p>wijmo还处于测试阶段，建议学习，实际应用还是等等吧。</p>
<p>日后有机会详解下wijmo的图表组件。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/3690/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>2010年十佳jquery插件</title>
		<link>http://www.36ria.com/3675</link>
		<comments>http://www.36ria.com/3675#comments</comments>
		<pubDate>Mon, 06 Dec 2010 14:02:58 +0000</pubDate>
		<dc:creator>明河共影</dc:creator>
				<category><![CDATA[jquery插件]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=3675</guid>
		<description><![CDATA[临近新年，WDL的Henry Jones评选出了2010年十大最佳jquery插件，来看看都是哪些好的应用。 1.Nivo Slider 推荐指数： 现在jquery的幻灯片插件太多了，Nivo Slider，明河倒不觉得非常突出，有兴趣的朋友可以看下《推荐5个jquery/flash幻灯片》、《五个jquery图片画廊插件》。 2.Quicksand 推荐指数： Quicksand入选十佳jquery插件是无可争议的，很酷的动画方式，适合元素的排序，重新渲染的情况。 ......]]></description>
			<content:encoded><![CDATA[<p>临近新年，<a href="http://webdesignledger.com/" target="_blank">WDL</a>的Henry Jones评选出了2010年十大最佳jquery插件，来看看都是哪些好的应用。</p>
<h4>1.<a href="http://nivo.dev7studios.com/" target="_blank">Nivo Slider</a></h4>
<p><img class="alignleft size-full wp-image-3676" title="jquery_slider_9" src="http://www.36ria.com/wp-content/uploads/2010/12/jquery_slider_9.jpg" alt="" width="540" height="265" /><br />
推荐指数：<img src="http://www.36ria.com/star.png" class="icon-star"></img><img src="http://www.36ria.com/star.png" class="icon-star"></img><img src="http://www.36ria.com/star.png" class="icon-star"></img><br />
现在jquery的幻灯片插件太多了，Nivo Slider，明河倒不觉得非常突出，有兴趣的朋友可以看下《<a href="http://www.36ria.com/2025">推荐5个jquery/flash幻灯片</a>》、《<a href="http://www.36ria.com/1921">五个jquery图片画廊插件</a>》。</p>
<h4>2.<a href="http://razorjack.net/quicksand/">Quicksand</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/12/new_jquery_2.jpg" alt="" title="new_jquery_2" width="540" height="330" class="alignleft size-full wp-image-3677" /><br />
推荐指数：<img src="http://www.36ria.com/star.png" class="icon-star"></img><img src="http://www.36ria.com/star.png" class="icon-star"></img><img src="http://www.36ria.com/star.png" class="icon-star"></img><img src="http://www.36ria.com/star.png" class="icon-star"></img><img src="http://www.36ria.com/star.png" class="icon-star"></img><br />
Quicksand入选十佳jquery插件是无可争议的，很酷的动画方式，适合元素的排序，重新渲染的情况。</p>
<h4>3.<a href="http://www.spritely.net/">Spritely</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/12/new_jquery_9.jpg" alt="" title="new_jquery_9" width="540" height="289" class="alignleft size-full wp-image-3678" /><br />
推荐指数：<img src="http://www.36ria.com/star.png" class="icon-star"></img><img src="http://www.36ria.com/star.png" class="icon-star"></img><img src="http://www.36ria.com/star.png" class="icon-star"></img><img src="http://www.36ria.com/star.png" class="icon-star"></img><img src="http://www.36ria.com/star.png" class="icon-star"></img><br />
Spritely入选十佳jquery插件实至名归，利用背景图片的错位移动，产生类似flash式的运动效果。话说那二只眼睛的乌鸦，相当怪异&#8230;..</p>
<h4>4.<a href="http://daverupert.com/2010/09/lettering-js/">Lettering.js</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/12/fresh_jquery_6.jpg" alt="" title="fresh_jquery_6" width="540" height="240" class="alignleft size-full wp-image-3679" /><br />
推荐指数：<img src="http://www.36ria.com/star.png" class="icon-star"></img><img src="http://www.36ria.com/star.png" class="icon-star"></img><img src="http://www.36ria.com/star.png" class="icon-star"></img><br />
用于产生华丽排版和字体的东东的&#8230;..实际上明河还真不清楚这插件有何实际意义&#8230;..</p>
<h4>5.<a href="http://tutorialzine.com/2010/07/colortips-jquery-tooltip-plugin/">Colortip</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/12/new_jquery_plugins_9.jpg" alt="" title="new_jquery_plugins_9" width="540" height="292" class="alignleft size-full wp-image-3680" /><br />
推荐指数：<img src="http://www.36ria.com/star.png" class="icon-star"></img><img src="http://www.36ria.com/star.png" class="icon-star"></img><img src="http://www.36ria.com/star.png" class="icon-star"></img><img src="http://www.36ria.com/star.png" class="icon-star"></img><br />
关于Colortip，明河就有很多话要说了，因为明河曾拆解过Colortip，并写了个类似的，更为强大的yitip，有兴趣的朋友可以猛击《<a href="http://www.36ria.com/2827">yitip—jquery工具提示插件（明河作品）</a>》，哈有朋友反映bug，yitip明河只有明年再重构了。<br />
明河还拿Colortip讲解过如何写一个jquery插件，请看<a href="http://www.36ria.com/2818">http://www.36ria.com/2818</a>。</p>
<h4>6.<a href="http://desandro.com/resources/jquery-masonry/">Masonry</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/12/new_jquery_4.jpg" alt="" title="new_jquery_4" width="540" height="362" class="alignleft size-full wp-image-3681" /><br />
推荐指数：<img src="http://www.36ria.com/star.png" class="icon-star"></img><img src="http://www.36ria.com/star.png" class="icon-star"></img><img src="http://www.36ria.com/star.png" class="icon-star"></img><img src="http://www.36ria.com/star.png" class="icon-star"></img><br />
可以理解为栅格系统，产生你所需要的布局方式。强悍的是可以产生一些诡异地凌乱的布局&#8230;&#8230;</p>
<h4>7.<a href="http://www.ivellios.toron.pl/technikalia/2010/06/22/gvchart-plugin-jquery-with-google-charts/" target="_blank">gvChart</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/12/new_jquery_plugins_2.jpg" alt="" title="new_jquery_plugins_2" width="540" height="230" class="alignleft size-full wp-image-3682" /><br />
推荐指数：<img src="http://www.36ria.com/star.png" class="icon-star"></img><img src="http://www.36ria.com/star.png" class="icon-star"></img><img src="http://www.36ria.com/star.png" class="icon-star"></img><br />
说到js图表，明河不得不强力推荐下《<a href="http://www.36ria.com/1219">Highcharts – 超强javascript图表库</a>》。</p>
<h4>8.<a href="http://www.mitya.co.uk/scripts/Animated-table-sort-REGEXP-friendly-111">Animated table sort</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/12/new_jquery_plugins_5.jpg" alt="" title="new_jquery_plugins_5" width="454" height="260" class="alignleft size-full wp-image-3683" /><br />
这个插件，明河要推荐下，是个好插件，用于表格排序时的动画。</p>
<h4>9.<a href="http://johnpatrickgiven.com/jquery/Image-Scale-Carousel/">jQuery Image Scale Carousel</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/12/jquery_2010_1.jpg" alt="" title="jquery_2010_1" width="550" height="335" class="alignleft size-full wp-image-3684" /><br />
推荐指数：<img src="http://www.36ria.com/star.png" class="icon-star"></img><img src="http://www.36ria.com/star.png" class="icon-star"></img><img src="http://www.36ria.com/star.png" class="icon-star"></img><img src="http://www.36ria.com/star.png" class="icon-star"></img><br />
图片滑动（旋转木马）插件，相当常见了，竞争非常激烈的一个插件种类，这款插件胜在细节。有兴趣的朋友还可以看《<a href="http://www.36ria.com/489">五个jquery图片滚动插件</a>》，还可以看《<a href="http://www.36ria.com/2698">再推荐5个jquery图片滚动插件</a>》&#8230;..</p>
<h4>10.<a href="http://www.yoxigen.com/yoxview/">YoxView</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/12/new_jquery_3.jpg" alt="" title="new_jquery_3" width="540" height="278" class="alignleft size-full wp-image-3685" /><br />
推荐指数：<img src="http://www.36ria.com/star.png" class="icon-star"></img><img src="http://www.36ria.com/star.png" class="icon-star"></img><img src="http://www.36ria.com/star.png" class="icon-star"></img><img src="http://www.36ria.com/star.png" class="icon-star"></img><br />
颇为实用的灯箱效果插件，关于灯箱效果插件，那也是泛滥，有兴趣的朋友可以看《<a href="http://www.36ria.com/3644">17个受欢迎的jquery灯箱效果插件</a>》。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/3675/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>17个受欢迎的jquery灯箱效果插件</title>
		<link>http://www.36ria.com/3644</link>
		<comments>http://www.36ria.com/3644#comments</comments>
		<pubDate>Mon, 29 Nov 2010 11:07:23 +0000</pubDate>
		<dc:creator>明河共影</dc:creator>
				<category><![CDATA[jquery插件]]></category>
		<category><![CDATA[jquery灯箱插件]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=3644</guid>
		<description><![CDATA[灯箱效果在图片展示上应用非常广，算是弹出层的变种，与弹出层不同的地方是灯箱插件一般都支持图片画廊模式。 1、Fancybox 2、Colorbox 3、jQuery Lightbox Plugin 4、prettyPhoto 5、Litebox 6、Slimbox 7、LightView 8、Shadowbox 9、LightWindows 10、Multibox 11、PiroBox 12、Super Box 13、CeeBox 14、NyroModal 15、imgBox 16、ClearBox 17、jQuery Tool......]]></description>
			<content:encoded><![CDATA[<p>灯箱效果在图片展示上应用非常广，算是弹出层的变种，与弹出层不同的地方是灯箱插件一般都支持图片画廊模式。</p>
<h4>1、<a href="http://fancy.klade.lv/">Fancybox</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/11/lightbox3.jpg" alt="" title="lightbox3" width="570" height="400" class="alignleft size-full wp-image-3645" /></p>
<h4>2、<a href="http://colorpowered.com/colorbox/">Colorbox</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/11/lightbox4.jpg" alt="" title="lightbox4" width="570" height="400" class="alignleft size-full wp-image-3646" /></p>
<h4>3、<a href="http://leandrovieira.com/projects/jquery/lightbox/">jQuery Lightbox Plugin</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/11/lightbox5.jpg" alt="" title="lightbox5" width="570" height="400" class="alignleft size-full wp-image-3647" /></p>
<h4>4、<a href="http://www.no-margin-for-errors.com/projects/prettyPhoto-jquery-lightbox-clone/">prettyPhoto</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/11/lightbox6.jpg" alt="" title="lightbox6" width="570" height="400" class="alignleft size-full wp-image-3648" /></p>
<h4>5、<a href="http://www.doknowevil.net/litebox/">Litebox</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/11/lightbox7.jpg" alt="" title="lightbox7" width="570" height="400" class="alignleft size-full wp-image-3649" /></p>
<h4>6、<a href="http://www.digitalia.be/software/slimbox2">Slimbox</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/11/lightbox9.jpg" alt="" title="lightbox9" width="570" height="400" class="alignleft size-full wp-image-3650" /></p>
<h4>7、<a href="http://www.nickstakenburg.com/projects/lightview/">LightView</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/11/lightbox10.jpg" alt="" title="lightbox10" width="570" height="400" class="alignleft size-full wp-image-3651" /></p>
<h4>8、<a href="http://www.shadowbox-js.com/">Shadowbox</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/11/lightbox16.jpg" alt="" title="lightbox16" width="570" height="400" class="alignleft size-full wp-image-3652" /></p>
<h4>9、<a href="http://www.stickmanlabs.com/lightwindow/">LightWindows</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/11/lightbox17.jpg" alt="" title="lightbox17" width="570" height="400" class="alignleft size-full wp-image-3653" /></p>
<h4>10、<a href="http://www.phatfusion.net/lightbox/">Multibox</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/11/lightbox20.jpg" alt="" title="lightbox20" width="570" height="400" class="alignleft size-full wp-image-3654" /></p>
<h4>11、<a href="http://www.pirolab.it/pirobox/#howto">PiroBox</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/11/lightbox24.jpg" alt="" title="lightbox24" width="570" height="400" class="alignleft size-full wp-image-3655" /></p>
<h4>12、<a href="http://www.pierrebertet.net/projects/jquery_superbox/">Super Box</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/11/lightbox25.jpg" alt="" title="lightbox25" width="570" height="400" class="alignleft size-full wp-image-3656" /></p>
<h4>13、<a href="http://catcubed.com/2008/12/23/ceebox-a-thickboxvideobox-mashup/">CeeBox</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/11/lightbox26.jpg" alt="" title="lightbox26" width="570" height="400" class="alignleft size-full wp-image-3657" /></p>
<h4>14、<a href="http://nyromodal.nyrodev.com/">NyroModal</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/11/lightbox27.jpg" alt="" title="lightbox27" width="570" height="400" class="alignleft size-full wp-image-3658" /></p>
<h4>15、<a href="http://jqueryglobe.com/labs/imgbox/">imgBox</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/11/lightbox28.jpg" alt="" title="lightbox28" width="570" height="400" class="alignleft size-full wp-image-3659" /></p>
<h4>16、<a href="http://www.clearbox.hu/index_en.html">ClearBox</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/11/lightbox30.jpg" alt="" title="lightbox30" width="570" height="400" class="alignleft size-full wp-image-3660" /></p>
<h4>17、<a href="http://flowplayer.org/tools/overlay/index.html">jQuery Tools</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/11/lightbox31.jpg" alt="" title="lightbox31" width="570" height="400" class="alignleft size-full wp-image-3661" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/3644/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>10个受欢迎的ajax弹出层/对话框组件</title>
		<link>http://www.36ria.com/3595</link>
		<comments>http://www.36ria.com/3595#comments</comments>
		<pubDate>Tue, 23 Nov 2010 14:30:15 +0000</pubDate>
		<dc:creator>明河共影</dc:creator>
				<category><![CDATA[jquery插件]]></category>
		<category><![CDATA[对话框]]></category>
		<category><![CDATA[弹出层]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=3595</guid>
		<description><![CDATA[弹出层/对话框效果在web应用非常广，明河今天在浏览1stwebdesigner时，发现了这篇好文章，太精彩了，明河厚着面皮，将其翻译过来。以下组件明河没特别说明，都是基于jquery。 1、Facebox 源自facebook的弹出层效果，半透明的边框是不是很眼熟呢，是的，新浪微博经常看到的弹出层，就是类似这样的效果。 2、Thickbox Thickbox是一款非常经典的弹出层插件，明河见到很多小网站都在用......]]></description>
			<content:encoded><![CDATA[<p>弹出层/对话框效果在web应用非常广，明河今天在浏览1stwebdesigner时，发现了这篇好文章，太精彩了，明河厚着面皮，将其翻译过来。以下组件明河没特别说明，都是基于jquery。</p>
<h4>1、<strong><a href="http://chriswanstrath.com/facebox/">Facebox</a></strong></h4>
<p><img class="alignleft size-full wp-image-3596" title="lightbox1" src="http://www.36ria.com/wp-content/uploads/2010/11/lightbox1.jpg" alt="" width="570" height="400" /><br />
源自facebook的弹出层效果，半透明的边框是不是很眼熟呢，是的，新浪微博经常看到的弹出层，就是类似这样的效果。</p>
<h4>2、<a href="http://jquery.com/demo/thickbox/">Thickbox</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/11/lightbox8.jpg" alt="" title="lightbox8" width="570" height="400" class="alignleft size-full wp-image-3597" /><br />
Thickbox是一款非常经典的弹出层插件，明河见到很多小网站都在用，也有相应的wordpress插件。明河个人觉得，Thickbox易用性和兼容性还是比较一般的。</p>
<h4>3、<a href="http://jqueryui.com/demos/dialog/">jQuery Dialog</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/11/lightbox11.jpg" alt="" title="lightbox11" width="570" height="400" class="alignleft size-full wp-image-3598" /><br />
源自jquery UI的对话框组件，还是非常靠谱的，很好很强大，只是引入的文件有点多，调用有点繁琐。</p>
<h4>4、<a href="http://prototype-window.xilinus.com/samples.html">Prototype Window</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/11/lightbox12.jpg" alt="" title="lightbox12" width="570" height="400" class="alignleft size-full wp-image-3599" /><br />
非常强大！应该说是这里所有的弹出层插件中最强大的！文档也是最全的，当然调用会复杂些，明河要提的一点是这款组件是基于prototype框架。</p>
<h4>5、<a href="http://mochaui.com/">MochaUI</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/11/lightbox13.jpg" alt="" title="lightbox13" width="570" height="400" class="alignleft size-full wp-image-3600" /><br />
基于Mootools，这款弹出层的样式是最漂亮的！Mootools明河不懂，不做评价。</p>
<h4>6、<a href="http://onehackoranother.com/projects/jquery/boxy/">Boxy</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/11/lightbox14.jpg" alt="" title="lightbox14" width="570" height="400" class="alignleft size-full wp-image-3601" /><br />
Boxy明河用过，IE6有bug！不推荐使用。</p>
<h4>7、<a href="http://www.wildbit.com/labs/modalbox/">ModalBox</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/11/lightbox15.jpg" alt="" title="lightbox15" width="570" height="400" class="alignleft size-full wp-image-3603" /></p>
<h4>8、<a href="http://www.ericmmartin.com/projects/simplemodal/#demo">SimpleModal</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/11/lightbox18.jpg" alt="" title="lightbox18" width="570" height="400" class="alignleft size-full wp-image-3604" /><br />
这是明河推荐使用的弹出层，非常实用，兼容性和易用性尚可。</p>
<h4>9、<a href="http://dev.iceburg.net/jquery/jqModal/#examples"> jqModal</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/11/lightbox19.jpg" alt="" title="lightbox19" width="570" height="400" class="alignleft size-full wp-image-3605" /><br />
相当简单的弹出层插件，不推荐使用。</p>
<h4>10、<a href="http://orangoo.com/labs/GreyBox/"> Greybox</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/11/lightbox21.jpg" alt="" title="lightbox21" width="570" height="400" class="alignleft size-full wp-image-3606" /></p>
<p>原文：<a href="http://www.1stwebdesigner.com/resources/ajax-lightbox-modal-dialog-solutions/">http://www.1stwebdesigner.com/resources/ajax-lightbox-modal-dialog-solutions/<br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/3595/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>area2select—jquery地区联动插件（咖啡兔作品）</title>
		<link>http://www.36ria.com/3395</link>
		<comments>http://www.36ria.com/3395#comments</comments>
		<pubDate>Sat, 30 Oct 2010 10:55:07 +0000</pubDate>
		<dc:creator>明河共影</dc:creator>
				<category><![CDATA[jquery插件]]></category>
		<category><![CDATA[jquery地区联动插件]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=3395</guid>
		<description><![CDATA[这是咖啡兔原创作品，明河第一时间测试了下，感觉还不赖，本着支持国人原创的原则，今天推荐给各位。明河曾经有写过jquery地区联动插件，不过后台是php版的，不少朋友问明河有没有其他服务器端语言的，很遗憾明河不会java和.net，所以没有。咖啡兔做的这个插件服务端语言使用的是java。 插件介绍首页：http://www.wsria.cn/archives/1237 咖啡兔的博客：http://www.wsria.cn/ demo页面：h......]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-3396" title="area2select" src="http://www.36ria.com/wp-content/uploads/2010/10/area2select.png" alt="" width="414" height="299" /></p>
<p>这是咖啡兔原创作品，明河第一时间测试了下，感觉还不赖，本着支持国人原创的原则，今天推荐给各位。明河曾经有写过jquery地区联动插件，不过后台是php版的，不少朋友问明河有没有其他服务器端语言的，很遗憾明河不会java和.net，所以没有。咖啡兔做的这个插件服务端语言使用的是java。</p>
<p>插件介绍首页：<a href="http://www.wsria.cn/archives/1237" target="_blank">http://www.wsria.cn/archives/1237</a></p>
<p>咖啡兔的博客：<a href="http://www.wsria.cn/" target="_blank">http://www.wsria.cn/</a></p>
<p>demo页面：<a href="http://demo.wsria.cn:9900/wsria-demo" target="_blank">http://demo.wsria.cn:9900/wsria-demo</a>，进入页面后在<strong>左侧</strong>的“地区信息”栏目中</p>
<p>下载页面：<a href="http://code.google.com/p/wsria/downloads/list" target="_blank">http://code.google.com/p/wsria/downloads/list</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/3395/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>jquery V1.4.3试用报告</title>
		<link>http://www.36ria.com/3326</link>
		<comments>http://www.36ria.com/3326#comments</comments>
		<pubDate>Sat, 23 Oct 2010 09:13:19 +0000</pubDate>
		<dc:creator>明河共影</dc:creator>
				<category><![CDATA[jquery教程]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[jquery1.4.3]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=3326</guid>
		<description><![CDATA[jquery V1.4.3已经正式发布！相对于1.4.2更新内容并不多，但修正了一些bug，性能上有一些提高，看下图： 上图是1.4.3和1.4.2的css()方法效率的比较。 1.4.3重构了css()方法，新的css()将支持旋转设置 jquery V1.4.3 在Google’s CDN上的路径为：http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js 下载的话，可以猛击此处进入jquery官网下载。 （文章中的动画demo由于与主题的jquery冲突，无法运行，......]]></description>
			<content:encoded><![CDATA[<p><script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script><br />
<script src="http://gsgd.co.uk/sandbox/jquery/easing/jquery.easing.1.3.js"></script><br />
jquery V1.4.3已经正式发布！相对于1.4.2更新内容并不多，但修正了一些bug，性能上有一些提高，看下图：</p>
<p><img class="alignleft size-full wp-image-3327" title="16214359_3rO0" src="http://www.36ria.com/wp-content/uploads/2010/10/16214359_3rO0.jpg" alt="" width="500" height="375" /></p>
<p>上图是1.4.3和1.4.2的css()方法效率的比较。</p>
<p>1.4.3重构了css()方法，新的css()将支持旋转设置</p>
<p>jquery V1.4.3 在Google’s CDN上的路径为：<a href="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js">http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js</a></p>
<p>下载的话，可以<a href="http://jquery.com/" target="_blank">猛击此处</a>进入jquery官网下载。<br />
（文章中的动画demo由于与主题的jquery冲突，无法运行，也导致RIA之家导航出不来，所以二个动画demo请看示例页。）</p>
<ul class="tow-columns clearfix">
<li class="l"><a href="http://www.36ria.com/demo/jquery.1.4.3/" class="btn-view-demo" target="_blank"></a></li>
<li class="l"><a href="http://www.36ria.com/wp-content/plugins/download-monitor/download.php?id=194" title="名称：jquery V1.4.3试用报告，下载次数：92，文件大小：16.77 kB" class="btn-download">点此下载</a></li>
</ul>
<h1>一、jquery V1.4.3新方法测试</h1>
<h4>1、<a href="http://api.jquery.com/jQuery.isWindow/">jQuery.isWindow</a></h4>
<p>这个方法用来判断对象是否是一个window。</p>
<p>来看个例子:</p>
<input type="button" value="测试window是否是一个window对象" id="demo-1" />
<p>  <script>
	$('#demo-1').click(function(){
		alert($.isWindow(window));
	})
  </script></p>
<pre class="prettyprint">
$('#demo-1').click(function(){
    alert($.isWindow(window));
})
 </pre>
<p>是不是感觉这个方法很多此一举？在web浏览器，通常我们不会去特意测试window对象。 </p>
<h4>2、<a href="http://api.jquery.com/jQuery.type/">jQuery.type()</a></h4>
<p>相对于isWindow，type方法非常好用，<a href="http://api.jquery.com/jQuery.type/">jQuery.type()</a>用于专门判断数据类型，判断的正确性高于直接使用typeof，typeof无法直接区分object和array，你甚至可以用<a href="http://api.jquery.com/jQuery.type/">jQuery.type()</a>来判断是不是正则对象。</p>
<pre class="prettyprint">
jQuery.type(true) === "boolean"
jQuery.type(3) === "number"
jQuery.type("test") === "string"
jQuery.type(function(){}) === "function"
jQuery.type([]) === "array"
jQuery.type(new Date()) === "date"
jQuery.type(/test/) === "regexp")
 </pre>
<h4>3、<a href="http://api.jquery.com/jQuery.fx.interval/">jQuery.fx.interval</a></h4>
<p>jQuery.fx.interval是一个属性，不是方法，用于设置动画一帧的秒数，默认为11毫秒，设置得越低，动画就越顺滑，当然cpu资源就消耗越大。</p>
<input type="button" value="运行动画" id="demo-2"/>
<div id="demo-2-div" style="width:200px; height:30px; margin:5px;background:green;"></div>
<p>  <script>
jQuery.fx.interval = 80;</p>
<p>$("#demo-2").click(function(){
  $("#demo-2-div").toggle( 3000 );
});
   </script></p>
<pre class="prettyprint">
jQuery.fx.interval = 80;

$("#demo-2").click(function(){
  $("#demo-2-div").toggle( 3000 );
});
 </pre>
<p>可以明显感觉到动画变的非常不流畅，这是因为将jQuery.fx.interval设置过高的缘故。</p>
<h4>4、<a href="http://api.jquery.com/event.namespace/">event.namespace</a></h4>
<p>这是event新的一个属性，用于返回事件的命名空间（假如该事件有命名空间） </p>
<p id="test-p">
<input  type="button"  value="显示事件的命名空间" id="demo-3" />
<p><script>
$("#test-p").bind("test.ria", function(event) {
  alert( event.namespace );
});
$("#demo-3").click(function(event) {
  $("#test-p").trigger("test.ria");
});  
</script> </p>
<pre class="prettyprint">
$("#test-p").bind("test.ria", function(event) {
  alert( event.namespace );
});
$("#demo-3").click(function(event) {
  $("#test-p").trigger("test.ria");
});
 </pre>
<h1>二、jquery V1.4.3的方法改进</h1>
<h4>1、事件方法的改进</h4>
<p>当bind/unbind第二个参数为逻辑类型时，用于直接判断是否阻止浏览器事件默认动作和冒泡。</p>
<p><a href="http://www.36ria.com" id="demo-4">猛击这里</a></p>
<p> <script>
 	$("#demo-4").bind('click',false)
 </script></p>
<pre class="prettyprint">
 	$("#demo-4").bind('click',false)
 </pre>
<p>这个改进还是非常实用的，可以看到链接不再触发跳转。 </p>
<p>事件的第二个改进在于事件方法（比如click）的第一个参数可以为一个对象，click的第二个参数监听函数可以取到该对象的值。</p>
<input  type="button"  value="获取第一个参数对象的值" id="demo-5" />
<p><script>
 	$("#demo-5").click({'36ria':'明河共影'},function(evt){
		alert(evt.data['36ria']);
	})
 </script></p>
<pre class="prettyprint">
$("#demo-5").click({'36ria':'明河共影'},function(evt){
    alert(evt.data['36ria']);
})
 </pre>
<h4>2、所有的动画方法支持缓动</h4>
<input type="button" value="运行动画" id="demo-6"/>
<div id="demo-6-div" style="width:200px; height:30px; margin:5px;background:green;"></div>
<p>  <script></p>
<p>$("#demo-6").click(function(){
  $("#demo-6-div").toggle('slow','easeOutBounce');
});
   </script> </p>
<pre class="prettyprint">
$("#demo-6").click(function(){
  $("#demo-6-div").toggle('slow','easeOutBounce');
});
 </pre>
<p>  使用easing（缓动）请先引入easing插件。</p>
<h1>三、明河结语</h1>
<p>当然jquery1.4.3的改进不只明河提到的内容，更为详细的请<a href="http://blog.jquery.com/2010/10/16/jquery-143-released/">猛击这里</a>。<br />
<!--为了让代码更易读，这里明河引入prettify代码高亮--></p>
<link href="http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js"></script><br />
<script>
prettyPrint();
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/3326/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>推荐7个优秀的jquery自动完成插件</title>
		<link>http://www.36ria.com/3280</link>
		<comments>http://www.36ria.com/3280#comments</comments>
		<pubDate>Thu, 14 Oct 2010 13:24:57 +0000</pubDate>
		<dc:creator>明河共影</dc:creator>
				<category><![CDATA[jquery插件]]></category>
		<category><![CDATA[jquery自动完成插件]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=3280</guid>
		<description><![CDATA[1、autocomplete 说到jquery的自动完成插件，就不得不说这个autocomplete插件，此插件极为强大&#8230;&#8230;. 2、Ajax AutoComplete 3、Ajax Autocomplete Script using jQuery 4、jQuery Autocomplete Plugin 5、AutoSuggest jQuery Plugin 严重推荐，样式相当不错。 6、Tokenizing Autocomplete Text Entry 也是一款非常不错的jquery自动完成插件。 7、Facebook Style Autosugges......]]></description>
			<content:encoded><![CDATA[<h4><span style="font-weight: normal;">1、</span><strong><span style="font-weight: normal;"><a href="http://www.36ria.com/719" target="_blank">autocomplete</a></span></strong></h4>
<p><img class="alignnone" src="http://www.36ria.cn/wp-content/uploads/autocomplete.jpg" alt="" width="310" height="237" /><br />
说到jquery的自动完成插件，就不得不说这个autocomplete插件，此插件极为强大&#8230;&#8230;.</p>
<h4>2、<a href="http://www.devbridge.com/projects/autocomplete/jquery/">Ajax AutoComplete</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/10/Ajax-AutoComplete-for-jQuery.png" alt="" title="Ajax-AutoComplete-for-jQuery" width="359" height="349" class="alignleft size-full wp-image-3281" /></p>
<h4>3、<a href="http://www.ajaxupdates.com/ajax-autocomplete-script-using-jquery/">Ajax Autocomplete Script using jQuery</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/10/Ajax-Autocomplete-Script-using-jQuery.png" alt="" title="Ajax-Autocomplete-Script-using-jQuery" width="245" height="297" class="alignleft size-full wp-image-3282" /></p>
<h4>4、<a href="http://plugins.jquery.com/project/autocompletex">jQuery Autocomplete Plugin</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/10/jQuery-Autocomplete-Plugin.png" alt="" title="jQuery-Autocomplete-Plugin" width="331" height="328" class="alignleft size-full wp-image-3283" /></p>
<h4>5、<a href="http://code.drewwilson.com/entry/autosuggest-jquery-plugin">AutoSuggest jQuery Plugin</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/10/AutoSuggest-jQuery-Plugin.png" alt="" title="AutoSuggest-jQuery-Plugin" width="436" height="189" class="alignleft size-full wp-image-3284" /><br />
严重推荐，样式相当不错。</p>
<h4>6、<a href="http://loopj.com/2009/04/25/jquery-plugin-tokenizing-autocomplete-text-entry/">Tokenizing Autocomplete Text Entry</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/10/jQuery-Plugin-Tokenizing-Autocomplete-Text-Entry.png" alt="" title="jQuery-Plugin-Tokenizing-Autocomplete-Text-Entry" width="410" height="226" class="alignleft size-full wp-image-3285" /><br />
也是一款非常不错的jquery自动完成插件。</p>
<h4>7、<a href="http://www.web2ajax.fr/2008/02/03/facebook-like-jquery-and-autosuggest-search-engine/">Facebook Style Autosuggest</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/10/FaceBook-style-autosuggest-with-jQuery.png" alt="" title="FaceBook-style-autosuggest-with-jQuery" width="270" height="130" class="alignleft size-full wp-image-3286" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/3280/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>推荐6个使用jquery制作的选项卡</title>
		<link>http://www.36ria.com/3267</link>
		<comments>http://www.36ria.com/3267#comments</comments>
		<pubDate>Mon, 11 Oct 2010 11:30:46 +0000</pubDate>
		<dc:creator>明河共影</dc:creator>
				<category><![CDATA[jquery教程]]></category>
		<category><![CDATA[jquery选项卡]]></category>
		<category><![CDATA[选项卡]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=3267</guid>
		<description><![CDATA[很久没发过与jquery相关的东西了，今天推荐6个使用jquery制作的选项卡 1、Create A Tabbed Interface Using jQuery 2、Sweet AJAX Tabs With jQuery 1.4 &#038; CSS3 严重推荐围观。 3、Create a Slick Tabbed Content Area using CSS &#038; jQuery 4、Fancy Sliding Form with jQuery 5、Create A Tabbed Interface Using jQuery 6、Tabify 原文：http://webdesignledger.com/tutorials/11-useful-jquery-tab-navigation-solution......]]></description>
			<content:encoded><![CDATA[<p>很久没发过与jquery相关的东西了，今天推荐6个使用jquery制作的选项卡</p>
<h4>1、<a href="http://css-tricks.com/organic-tabs/" target="_blank">Create A Tabbed Interface Using jQuery</a></h4>
<p><img class="alignleft size-full wp-image-3268" title="jquery_tabs_11" src="http://www.36ria.com/wp-content/uploads/2010/10/jquery_tabs_11.jpg" alt="" width="540" height="317" /></p>
<h4>2、<a href="http://tutorialzine.com/2010/01/sweet-tabs-jquery-ajax-css/" target="_blank">Sweet AJAX Tabs With jQuery 1.4 &#038; CSS3</a><br />
</h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/10/jquery_tabs_1.jpg" alt="" title="jquery_tabs_1" width="540" height="401" class="alignleft size-full wp-image-3269" /><br />
严重推荐围观。</p>
<h4>3、<a href="http://net.tutsplus.com/html-css-techniques/how-to-create-a-slick-tabbed-content-area/" target="_blank">Create a Slick Tabbed Content Area using CSS &#038; jQuery</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/10/jquery_tabs_4.jpg" alt="" title="jquery_tabs_4" width="540" height="350" class="alignleft size-full wp-image-3270" /></p>
<h4>4、<a href="http://tympanus.net/codrops/2010/06/07/fancy-sliding-form-with-jquery/">Fancy Sliding Form with jQuery</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/10/jquery_tabs_5.jpg" alt="" title="jquery_tabs_5" width="540" height="266" class="alignleft size-full wp-image-3271" /></p>
<h4>5、<a href="http://net.tutsplus.com/javascript-ajax/create-a-tabbed-interface-using-jquery/">Create A Tabbed Interface Using jQuery</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/10/jquery_tabs_2.jpg" alt="" title="jquery_tabs_2" width="540" height="261" class="alignleft size-full wp-image-3272" /></p>
<h4>6、<a href="http://d2o0t5hpnwv4c1.cloudfront.net/042_jQueryUITabs/demo/index.html">Tabify</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/10/jquery_tabs_6.jpg" alt="" title="jquery_tabs_6" width="540" height="266" class="alignleft size-full wp-image-3273" /><br />
原文：<a href="http://webdesignledger.com/tutorials/11-useful-jquery-tab-navigation-solutions">http://webdesignledger.com/tutorials/11-useful-jquery-tab-navigation-solutions</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/3267/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>30个富有想象力的flash预加载动画欣赏</title>
		<link>http://www.36ria.com/3010</link>
		<comments>http://www.36ria.com/3010#comments</comments>
		<pubDate>Mon, 30 Aug 2010 07:01:08 +0000</pubDate>
		<dc:creator>明河共影</dc:creator>
				<category><![CDATA[jquery]]></category>
		<category><![CDATA[设计]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flash站点]]></category>
		<category><![CDATA[flash预加载]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=3010</guid>
		<description><![CDATA[1、Happy Greenville 非常可爱的预加载画面，铅笔画式的进度条，漂浮的人物，力荐，是一个精品flash站点效果。 2、Ad Eight 看着这动画，明河就想起章鱼帝保罗(ˇˍˇ） &#8230;&#8230;. 3、Antpaw 有点华丽。 4、BTOB 声音的应用是个亮点。 5、Bunker 很有旧式电影的感觉。 6、ZUNE 随着加载进度不断清晰的手机轮廓，配合纯黑的背景，是否想一睹其芳容的冲动？ 7、Elipse Agency 立体长方形的加......]]></description>
			<content:encoded><![CDATA[<h4>1、<a href="http://www.happyingreenville.com/" target="_blank">Happy Greenville</a></h4>
<p><img class="alignleft size-full wp-image-3011" title="St" src="http://www.36ria.com/wp-content/uploads/2010/08/St.jpg" alt="" width="570" height="350" /></p>
<p>非常可爱的预加载画面，铅笔画式的进度条，漂浮的人物，力荐，是一个精品flash站点效果。</p>
<h4>2、<a href="http://www.adeight.nl/" target="_blank">Ad Eight</a></h4>
<p><img class="alignleft size-full wp-image-3012" title="AdEightawesomeflashpreloads" src="http://www.36ria.com/wp-content/uploads/2010/08/AdEightawesomeflashpreloads.jpg" alt="" width="570" height="350" /></p>
<p>看着这动画，明河就想起章鱼帝保罗(ˇˍˇ） &#8230;&#8230;.</p>
<h4>3、<a href="http://antpaw.org/" target="_blank">Antpaw</a></h4>
<p><img class="alignleft size-full wp-image-3014" title="antpawawesomeflashpreloads" src="http://www.36ria.com/wp-content/uploads/2010/08/antpawawesomeflashpreloads.jpg" alt="" width="570" height="350" /></p>
<p>有点华丽。</p>
<h4>4、<a href="http://www.btob.es/" target="_blank">BTOB</a></h4>
<p><img class="alignleft size-full wp-image-3015" title="BTOBawesomeflashpreloads" src="http://www.36ria.com/wp-content/uploads/2010/08/BTOBawesomeflashpreloads.jpg" alt="" width="570" height="350" /></p>
<p>声音的应用是个亮点。</p>
<h4>5、<a href="http://www.bunker.hr/" target="_blank">Bunker</a></h4>
<p><img class="alignleft size-full wp-image-3016" title="Bunkerawesomeflashpreloads" src="http://www.36ria.com/wp-content/uploads/2010/08/Bunkerawesomeflashpreloads.jpg" alt="" width="570" height="350" /></p>
<p>很有旧式电影的感觉。</p>
<h4>6、<a href="http://www.zunejourney.net/" target="_blank">ZUNE</a></h4>
<p><img class="alignleft size-full wp-image-3017" title="ZUNE" src="http://www.36ria.com/wp-content/uploads/2010/08/ZUNE.jpg" alt="" width="570" height="350" /></p>
<p>随着加载进度不断清晰的手机轮廓，配合纯黑的背景，是否想一睹其芳容的冲动？</p>
<p>7、<a href="http://www.elipseagency.com/agency.html" target="_blank">Elipse  Agency</a></p>
<p><img class="alignleft size-full wp-image-3018" title="ElipseAgencyawesomeflashpreloads" src="http://www.36ria.com/wp-content/uploads/2010/08/ElipseAgencyawesomeflashpreloads.jpg" alt="" width="570" height="350" /></p>
<p>立体长方形的加载进度条，非常不错的背景音乐。</p>
<h4>8、<a href="http://okaydave.com/" target="_blank">Dave Werner’s Portfolio</a></h4>
<p><img class="alignleft size-full wp-image-3019" title="DaveWernersPortfolio2006awesomeflashpreloads" src="http://www.36ria.com/wp-content/uploads/2010/08/DaveWernersPortfolio2006awesomeflashpreloads.jpg" alt="" width="570" height="350" /></p>
<p>华丽的墙壁&#8230;&#8230;.</p>
<p>9、<a href="http://food.barba.ru/" target="_blank">Food of the Food</a></p>
<p><img class="alignleft size-full wp-image-3020" title="FoodoftheFood" src="http://www.36ria.com/wp-content/uploads/2010/08/FoodoftheFood.jpg" alt="" width="570" height="350" /></p>
<p>与上一个站点的效果类似。</p>
<h4>10、<a href="http://www.xixinobanho.org.br/" target="_blank">XIXI NO BANHO</a></h4>
<p><img class="alignleft size-full wp-image-3021" title="XIXINOBANHO" src="http://www.36ria.com/wp-content/uploads/2010/08/XIXINOBANHO.jpg" alt="" width="570" height="350" /></p>
<p>跟随鼠标移动的进度，随进度绘制的曲线。</p>
<h4>11、<a href="http://www.pienozvaigzdes.lt/index.php?act=intro" target="_blank">AB  “Pieno žvaigždės”</a></h4>
<p><img class="alignleft size-full wp-image-3022" title="ABawesomeflashpreloads" src="http://www.36ria.com/wp-content/uploads/2010/08/ABawesomeflashpreloads.jpg" alt="" width="570" height="350" /></p>
<p>杯子里不断加满的水。</p>
<h4>12、<a href="http://devotchka.net/" target="_blank">DeVotchKa</a></h4>
<p><img class="alignleft size-full wp-image-3023" title="DeVotchKaawesomeflashpreloads" src="http://www.36ria.com/wp-content/uploads/2010/08/DeVotchKaawesomeflashpreloads.jpg" alt="" width="570" height="350" /></p>
<p>留意手指的变化。</p>
<h4>13、<a href="http://www.starbuckscoffeeathome.com/" target="_blank">Starbucks  Coffee</a></h4>
<p><img class="alignleft size-full wp-image-3024" title="StarbucksCoffee" src="http://www.36ria.com/wp-content/uploads/2010/08/StarbucksCoffee.jpg" alt="" width="570" height="350" /></p>
<h4>14、<a href="http://www.sir-patroclo.com/" target="_blank">Sir-Patroclo</a></h4>
<p><img class="alignleft size-full wp-image-3025" title="SirPatroclo" src="http://www.36ria.com/wp-content/uploads/2010/08/SirPatroclo.jpg" alt="" width="574" height="354" /></p>
<p>相当可爱的人物。</p>
<h4>15、<a href="http://www.sourcebits.com/tangleddecals/" target="_blank">Sourcebits  TangledDecals</a></h4>
<p><img class="alignleft size-full wp-image-3026" title="SourcebitsTangledDecals" src="http://www.36ria.com/wp-content/uploads/2010/08/SourcebitsTangledDecals.jpg" alt="" width="574" height="354" /></p>
<h4>16、<a href="http://mellowmushroom.com/index.php" target="_blank">Mellow Mushroom  Pizza Bakers</a></h4>
<p><img class="alignleft size-full wp-image-3027" title="MellowMushroomPizzaBakers" src="http://www.36ria.com/wp-content/uploads/2010/08/MellowMushroomPizzaBakers.jpg" alt="" width="574" height="354" /></p>
<h4>17、<a href="http://www.mariafilo.com.br/verao2011/" target="_blank">Maria Filó</a></h4>
<p><img class="alignleft size-full wp-image-3028" title="MariaFil" src="http://www.36ria.com/wp-content/uploads/2010/08/MariaFil.jpg" alt="" width="574" height="354" /></p>
<p>纸团&#8230;&#8230;</p>
<h4>18、<a href="http://porliniers.com/" target="_blank">Por Liniers</a></h4>
<p><img class="alignleft size-full wp-image-3029" title="PorLiniers" src="http://www.36ria.com/wp-content/uploads/2010/08/PorLiniers.jpg" alt="" width="574" height="354" /></p>
<p>有点夸张的吸管&#8230;..</p>
<h4>19、<a href="http://www.redbullsoapboxracer.com/" target="_blank">Red Bull Soapbox  Racer</a></h4>
<p><img class="alignleft size-full wp-image-3030" title="RedBullSoapboxRacer" src="http://www.36ria.com/wp-content/uploads/2010/08/RedBullSoapboxRacer.jpg" alt="" width="574" height="354" /></p>
<p>留意卷尺的变化</p>
<h4>20、<a href="http://www.vdiazphoto.com/" target="_blank">Vicente Díaz Peñas</a></h4>
<p><img class="alignleft size-full wp-image-3031" title="VicenteDazPeas" src="http://www.36ria.com/wp-content/uploads/2010/08/VicenteDazPeas.jpg" alt="" width="574" height="354" /></p>
<h4>21、<a href="http://www.galaicofolia.com/" target="_blank">Galaicofolia</a></h4>
<p><img class="alignleft size-full wp-image-3032" title="Galaicofolia" src="http://www.36ria.com/wp-content/uploads/2010/08/Galaicofolia.jpg" alt="" width="574" height="354" /></p>
<h4>22、<a href="http://www.through-my-eyes.fr/" target="_blank">David Ohana</a></h4>
<p><img class="alignleft size-full wp-image-3033" title="DavidOhanaawesomeflashpreloads" src="http://www.36ria.com/wp-content/uploads/2010/08/DavidOhanaawesomeflashpreloads.jpg" alt="" width="574" height="354" /></p>
<h4>23、<a href="http://www.corny.de/" target="_blank">Corny</a></h4>
<p><img class="alignleft size-full wp-image-3034" title="Cornyawesomeflashpreloads" src="http://www.36ria.com/wp-content/uploads/2010/08/Cornyawesomeflashpreloads.jpg" alt="" width="574" height="354" /></p>
<h4>24、<a href="http://hf3.coca-cola.com/" target="_blank">Coca-Cola Happiness  Factory</a></h4>
<p><img class="alignleft size-full wp-image-3035" title="CocaColaHappinessFactoryawesomeflashpreloads" src="http://www.36ria.com/wp-content/uploads/2010/08/CocaColaHappinessFactoryawesomeflashpreloads.jpg" alt="" width="574" height="354" /></p>
<h4>25、<a href="http://www.zeebee.co.uk/#/HOME" target="_blank">ZEEBEE VISUAL  COMMUNICATIONS</a></h4>
<p><img class="alignleft size-full wp-image-3036" title="ZEEBEEVISUALCOMMUNICATIONS" src="http://www.36ria.com/wp-content/uploads/2010/08/ZEEBEEVISUALCOMMUNICATIONS.jpg" alt="" width="574" height="354" /></p>
<h4>26、<a href="http://www.dissident-wear.com/" target="_blank">Dissident-wear</a></h4>
<p><img class="alignleft size-full wp-image-3037" title="Dissidentwear" src="http://www.36ria.com/wp-content/uploads/2010/08/Dissidentwear.jpg" alt="" width="574" height="354" /></p>
<h4>27、<a href="http://www.crittercreative.com/#/help" target="_blank">Critter  Creative</a></h4>
<p><img class="alignleft size-full wp-image-3038" title="CritterCreativeawesomeflashpreloads" src="http://www.36ria.com/wp-content/uploads/2010/08/CritterCreativeawesomeflashpreloads.jpg" alt="" width="574" height="354" /></p>
<h4>28、<a href="http://concept007.ru/#/005" target="_blank">CONCEPT 007 / 005</a></h4>
<p><img class="alignleft size-full wp-image-3039" title="CONCEPT007awesomeflashpreloads" src="http://www.36ria.com/wp-content/uploads/2010/08/CONCEPT007awesomeflashpreloads.jpg" alt="" width="574" height="354" /></p>
<h4>29、<a href="http://www.mynthon.com/en" target="_blank">Mynthon Kaira Ice Fishing  Game</a></h4>
<p><img class="alignleft size-full wp-image-3040" title="MynthonKairaIceFishingGame" src="http://www.36ria.com/wp-content/uploads/2010/08/MynthonKairaIceFishingGame.jpg" alt="" width="574" height="354" /></p>
<h4>30、<a href="http://www.sazacat.net/sito/sito.html" target="_blank">Sazacat  Portfolio</a></h4>
<p><img class="alignleft size-full wp-image-3041" title="SazacatPortfolio" src="http://www.36ria.com/wp-content/uploads/2010/08/SazacatPortfolio.jpg" alt="" width="574" height="354" /></p>
<p>原文：<a href="http://www.1stwebdesigner.com/inspiration/creative-flash-preloaders/">http://www.1stwebdesigner.com/inspiration/creative-flash-preloaders/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/3010/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>推荐5个有用的jquery表单插件</title>
		<link>http://www.36ria.com/2997</link>
		<comments>http://www.36ria.com/2997#comments</comments>
		<pubDate>Sat, 28 Aug 2010 00:53:39 +0000</pubDate>
		<dc:creator>明河共影</dc:creator>
				<category><![CDATA[jquery插件]]></category>
		<category><![CDATA[jquery表单插件]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=2997</guid>
		<description><![CDATA[出了趟远门，上不了网，这几天都没更新博客，今天终于有网了，8点起来更新下&#8230;&#8230;. 明河曾在上个月发了篇《推荐10个jquery表单增强插件》，介绍了十个实用的jquery表单插件，今天再推荐5个。 1、jQuery File Style Plugin 通过这个插件，你可以自由地修改文件域中的按钮样式。 明河备注：这个插件的原理很简单，即在文件域上嵌套一个层（层包含你自定义的上传按钮样式）......]]></description>
			<content:encoded><![CDATA[<p>出了趟远门，上不了网，这几天都没更新博客，今天终于有网了，8点起来更新下&#8230;&#8230;.<br />
明河曾在上个月发了篇《<a href="http://www.36ria.com/2787" target="_blank">推荐10个jquery表单增强插件</a>》，介绍了十个实用的jquery表单插件，今天再推荐5个。</p>
<h4>1、<a href="http://www.appelsiini.net/projects/filestyle">jQuery File Style Plugin</a></h4>
<p><img class="alignleft size-full wp-image-2998" title="1" src="http://www.36ria.com/wp-content/uploads/2010/08/12.jpg" alt="" width="450" height="200" /></p>
<p>通过这个插件，你可以自由地修改文件域中的按钮样式。</p>
<p>明河备注：这个插件的原理很简单，即在文件域上嵌套一个层（层包含你自定义的上传按钮样式），然后设置文件域的透明度为0，就实现了这个功能。值得一提的是firefox和chome下样式并不统一，应该是bug。作者的想法还是很不错的。</p>
<ul class="tow-columns clearfix">
<li class="l"><a href="http://www.appelsiini.net/projects/filestyle/demo.html" class="btn-view-demo" target="_blank"></a></li>
<li class="l"><a class="btn-download" title="" href="http://www.appelsiini.net/download/jquery.filestyle.js"></a></li>
</ul>
<h4>2、<a href="http://jquery.sanchezsalvador.com/page/jquerycombobox.aspx">jQuery ComboBox</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/08/21.jpg" alt="" title="2" width="450" height="200" class="alignleft size-full wp-image-2999" /><br />
顾名思义是类似ext中的ComboBox组件，优化版的选择框，而这款选择框的优势在于对选择框内部选择项样式的自由设置。可以呈现出类似树级效果。<br />
明河备注：ComboBox的原理就是用层去模拟选择框的行为，从而规避选择框存在的诸多缺陷。这个ComboBox不算是最强大的、样式也很一般、API的名字还很别扭（太长）&#8230;.但作者的思路还是没问题的。<br />
<a href="http://jquery.sanchezsalvador.com/jquery/page/jquerycomboboxexamplebasic.aspx" class="btn-view-demo" target="_blank"></a></p>
<h4>3、<a href="http://itgroup.com.ph/alphanumeric/">jQuery AlphaNumeric</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/08/31.jpg" alt="" title="3" width="450" height="200" class="alignleft size-full wp-image-3000" /><br />
这个插件非常实用，用于限制输入框的输入（不止限制数字输入）。<br />
明河备注：AlphaNumeric的原理本身并不复杂，关键在于对用户输入时的键盘监听，获取用户按下的键值，然后再去跟插件的“限制”参数做匹配，不匹配则加入输入框。</p>
<ul class="tow-columns clearfix">
<li class="l"><a href="http://itgroup.com.ph/alphanumeric/" class="btn-view-demo" target="_blank"></a></li>
<li class="l"><a class="btn-download" title="" href="http://itgroup.com.ph/alphanumeric/alphanumeric.zip"></a></li>
</ul>
<h4>4、<a href="http://validity.thatscaptaintoyou.com/">jQuery Validity</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/08/41.jpg" alt="" title="4" width="450" height="200" class="alignleft size-full wp-image-3001" /><br />
又一个表单验证插件，但跟<a href="http://www.36ria.com/1645">validationEngine</a>比还有非常明显的差距，不支持即时验证。<br />
明河备注：现在的表单验证插件真是多，不过大同小异，明河最欣赏的还是validationEngine。</p>
<h4>5、<a href="http://www.xarg.org/project/jquery-color-plugin-xcolor/">jQuery Color</a></h4>
<p><img src="http://www.36ria.com/wp-content/uploads/2010/08/51.jpg" alt="" title="5" width="450" height="200" class="alignleft size-full wp-image-3002" /><br />
力荐，颜色拾取插件明河之前还没推荐过。实际上颜色拾取插件非常少，而这款，是明河见过最优秀的，有需要的朋友，强烈推进下。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/2997/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ld—jquery多级联动插件（明河作品）</title>
		<link>http://www.36ria.com/2955</link>
		<comments>http://www.36ria.com/2955#comments</comments>
		<pubDate>Sat, 21 Aug 2010 13:35:32 +0000</pubDate>
		<dc:creator>明河共影</dc:creator>
				<category><![CDATA[jquery插件]]></category>
		<category><![CDATA[jquery多级联动插件]]></category>
		<category><![CDATA[明河作品]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=2955</guid>
		<description><![CDATA[jquery多级联动插件明河曾经写过二个版本，期间得到各路朋友的不少反馈（特别是网名为Fox的朋友，提出的建议非常的详细而且很有建设性），不得否认seriesComboBoxs（jquery多级联动插件）存在诸多缺陷，比如：无法设置选择框的默认值。 于是明河决定重构query多级联动插件，由于相对于seriesComboBoxs变动相当大，所以明河将这个插件重新命名为ld，旧的seriesComboBoxs明河将不再做......]]></description>
			<content:encoded><![CDATA[<p>jquery多级联动插件明河曾经写过二个版本，期间得到各路朋友的不少反馈（特别是网名为Fox的朋友，提出的建议非常的详细而且很有建设性），不得否认<a href="http://www.36ria.com/2274" target="_blank">seriesComboBoxs</a>（jquery多级联动插件）存在诸多缺陷，比如：无法设置选择框的默认值。</p>
<p>于是明河决定重构query多级联动插件，由于相对于seriesComboBoxs变动相当大，所以明河将这个插件重新命名为<strong>ld</strong>，旧的seriesComboBoxs明河将不再做维护。<br />
<img src="http://www.36ria.com/wp-content/uploads/2010/08/ld.png" alt="" title="ld" width="500" height="141" class="alignleft size-full wp-image-2956" /></p>
<h5>V1.2 更新：</h5>
<ul>
<li>修正IE6下报“未指明的错误”</li>
<li>修正IE6下无法选择默认值的问题</li>
<li>修正取xml数据时出现“头部已经发送”的问题</li>
</ul>
<h5>ld V1.0相对于seriesComboBoxsV0.2的改进：</h5>
<ul>
<li>可以设置选择框的默认值</li>
<li>不再需要对联动的所有选择框添加id（需要有相同的样式名）</li>
<li>新增几个新的使用方法</li>
<li>简化了API</li>
<li>使用新的事件机制</li>
</ul>
<p>改动还是非常大的，建议使用ldV1.0。</p>
<ul class="tow-columns clearfix">
<li class="l"><a href="http://www.36ria.com/demo/ld/" class="btn-view-demo" target="_blank"></a></li>
<li class="l"><a href="http://www.36ria.com/wp-content/plugins/download-monitor/download.php?id=188" title="名称：ld，下载次数：969，文件大小：152.03 kB" class="btn-download">点此下载</a></li>
</ul>
<h2>使用教程</h2>
<h4>1、导入地区数据库（mysql）</h4>
<p>数据库文件为teashop_region.sql，此数据库来源于ecshop，Fox曾告知明河此数据库并不全，很感谢Fox提供了一个新的数据库，下个版本将使用Fox提供的数据库。</p>
<h4>2、连接数据库</h4>
<p>请打开get_region.php，找到：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #00008b;">$hostname</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">localhost</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;</span><span style="color: #ffa500;">// 数据库服务器</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$username</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">root</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// 数据库用户名</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$password</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">123</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// 数据库密码</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$dbname</span><span style="color: Gray;">&nbsp;&nbsp; = </span><span style="color: #8b0000;">'</span><span style="color: Red;">ld</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// 数据库名</span></li>
</ol></div>
<p>按照本地服务器的情况，自行修改。</p>
<h4>3、引入jquery库、jquery.ld.js和示例css</h4>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">link</span><span style="color: Gray;"> </span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">style/css/base.css</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">rel</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">stylesheet</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/css</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">link</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">style/css/demo.css</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">rel</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">stylesheet</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/css</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">script</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">js/jquery-1.4.2.min.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">script</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">js/jquery.ld.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span></li></ol></div>
<h4>4、建立4个打算联动的选择框</h4>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">table</span><span style="color: Gray;"> </span><span style="color: #00008b;">width</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">700</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">border</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">0</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">cellspacing</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">0</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">cellpadding</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">0</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">tab1</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">tr</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">td</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">国家</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">td</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">td</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">select</span><span style="color: Gray;">&nbsp; </span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ld-select-1</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">country</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">option</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">value</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">请选择你的国家</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">option</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">select</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">td</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">td</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">省份</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">td</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">td</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">select</span><span style="color: Gray;">&nbsp; </span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ld-select-1</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">province</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">option</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">value</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">请选择你的省份</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">option</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">select</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">td</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">td</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">城市</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">td</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">td</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">select</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ld-select-1</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">city</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">option</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">value</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">请选择你的城市</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">option</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">select</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">td</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">td</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">区县</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">td</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">td</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">select</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ld-select-1</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">county</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">option</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">value</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">请选择你的区县</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">option</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">select</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">td</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">tr</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">table</span><span style="color: Olive;">&gt;</span></li></ol></div>
<p>联动的选择框，必须要有相同的样式名，比如这里的“ld-select-1”。</p>
<h4>5、初始化插件</h4>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">.ld-select-1</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">ld</span><span style="color: Olive;">({</span><span style="color: Blue;">ajaxOptions</span><span style="color: Gray;"> : </span><span style="color: Olive;">{</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">url</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> : </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">get_region.php</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">}</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">style</span><span style="color: Gray;"> : </span><span style="color: Olive;">{</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">width</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> : </span><span style="color: Maroon;">120</span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li></ol></div>
<p><strong>ajaxOptions</strong>用于设置ajax获取数据的参数<br />
<strong>style</strong>设置选择框的样式<br />
留意这里的调用与明河之前写的seriesComboBoxs有明显差异。<br />
<strong>seriesComboBoxs初始化：</strong></p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$.</span><span style="color: Blue;">seriesComboBoxs</span><span style="color: Olive;">({</span><span style="color: Blue;">selects</span><span style="color: Gray;"> : </span><span style="color: Olive;">[</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">#country</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">#province</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">#city</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">#county</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">]</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">ajaxOptions</span><span style="color: Gray;"> : </span><span style="color: Olive;">{</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">url</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> : </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">get_region.php</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li></ol></div>
<p>新的ld插件已经不存在<strong>selects</strong>参数。</p>
<h4>6、ld参数设置</h4>
<table border="0" cellspacing="0" cellpadding="0" class="tab1">
<thead>
<tr>
<td width="127" valign="top">
<strong>参数</strong>
</td>
<td width="108" valign="top">
<strong>默认值</strong>
</td>
<td width="84" valign="top">
<strong>类型</strong>
</td>
<td width="249" valign="top">
<strong>描述</strong>
</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top">
<strong>ajaxOptions</strong>
</td>
<td valign="top">
{<br />
url : null,<br />
type : &#8216;get&#8217;,<br />
data : {},<br />
dataType : &#8216;json&#8217;,<br />
success : function(){},<br />
beforeSend : function(){} <br />
}
</td>
<td  valign="top">
<p>Object</p>
</td>
<td valign="top">
<p>ajax获取数据时的配置默认的数据源格式为json</p>
</td>
</tr>
<tr>
<td valign="top"><strong>defaultParentId</strong></td>
<td valign="top">0</td>
<td  valign="top">Number</td>
<td valign="top">默认父级id，设置为0，即获取parent_id为0的数据（示例中返回“中国”）</td>
</tr>
<tr>
<td valign="top"><strong>defaultLoadSelectIndex</strong></td>
<td valign="top">0</td>
<td  valign="top">Number</td>
<td valign="top">默认读取数据的选择框，尽量使用默认的，这个参数用于设置读取那个选择框的数据。</td>
</tr>
<tr>
<td valign="top"><strong>texts</strong></td>
<td valign="top">[]</td>
<td  valign="top">Array</td>
<td valign="top">
<p>默认选择框中的选中项，比如设置为：<strong>texts</strong>:['福建','福州','长乐']</p>
<p>那么三个选择框会分别加载数据，并且选中与texts中字符串相同的项</p>
</td>
</tr>
<tr>
<td valign="top"><strong>style</strong></td>
<td valign="top">null</td>
<td  valign="top">Object</td>
<td valign="top">选择框的样式</td>
</tr>
<tr>
<td valign="top"><strong>field</strong></td>
<td valign="top">{<br />
region_id : &quot;region_id&quot;,<br />
region_name : &quot;region_name&quot;,<br />
parent_id : &quot;parent_id&quot;<br />
}</td>
<td  valign="top">Object</td>
<td valign="top">前台处理后台返回的数据时所使用的字段名，一般采用默认的即可。</td>
</tr>
</tbody>
</table>
<h4>7、方法说明</h4>
<p>使用ld的方法，先要获取ld的API，比如示例4：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">var</span><span style="color: Gray;"> $</span><span style="color: Blue;">ld4</span><span style="color: Gray;"> = $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">.ld-select-4</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; $</span><span style="color: Blue;">ld4</span><span style="color: Gray;">.</span><span style="color: Blue;">ld</span><span style="color: Olive;">({</span><span style="color: Blue;">ajaxOptions</span><span style="color: Gray;"> : </span><span style="color: Olive;">{</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">url</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> : </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">get_region.php</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">}</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">defaultParentId</span><span style="color: Gray;"> : </span><span style="color: Maroon;">1</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">style</span><span style="color: Gray;"> : </span><span style="color: Olive;">{</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">width</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> : </span><span style="color: Maroon;">120</span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">&nbsp; &nbsp;&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">ld4_api</span><span style="color: Gray;"> = $</span><span style="color: Blue;">ld4</span><span style="color: Gray;">.</span><span style="color: Blue;">ld</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">api</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<h5>方法1：texts</h5>
<p>描述：用于获取联动选择框的字符串数据。<br />
返回：数组，比如“['福建','泉州','丰泽']”</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">text</span><span style="color: Gray;"> = </span><span style="color: Blue;">ld4_api</span><span style="color: Gray;">.</span><span style="color: Blue;">texts</span><span style="color: Olive;">()</span><span style="color: Gray;">.</span><span style="color: Blue;">join</span><span style="color: Olive;">(</span><span style="color: #8b0000;">''</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<h5>方法2：selected</h5>
<p>描述：用于设置选择框的选中值<br />
参数：</p>
<ul>
<li>t：数组，要选中的选择框的字符串</li>
<li>completeCallBack：回调函数，当选择框数据全部加载完毕后触发</li>
</ul>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">ld4_api</span><span style="color: Gray;">.</span><span style="color: Blue;">selected</span><span style="color: Olive;">([</span><span style="color: #8b0000;">'</span><span style="color: Red;">福建</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">泉州</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">丰泽</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;">,</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">text</span><span style="color: Gray;"> = </span><span style="color: Blue;">ld4_api</span><span style="color: Gray;">.</span><span style="color: Blue;">texts</span><span style="color: Olive;">()</span><span style="color: Gray;">.</span><span style="color: Blue;">join</span><span style="color: Olive;">(</span><span style="color: #8b0000;">''</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">alert</span><span style="color: Olive;">(</span><span style="color: Blue;">text</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li></ol></div>
<h5>方法3：size</h5>
<p>描述：获取联动选择框的数量</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">ld4_api</span><span style="color: Gray;">.</span><span style="color: Blue;">size</span><span style="color: Olive;">()</span></li></ol></div>
<h5>方法4：css</h5>
<p>描述：设置选择框的样式</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">ld4_api</span><span style="color: Gray;">.</span><span style="color: Blue;">css</span><span style="color: Olive;">({</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">width</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> : </span><span style="color: Maroon;">120</span><span style="color: Olive;">})</span></li></ol></div>
<h4>作者结语</h4>
<p>欢迎各路朋友反馈bug和建议，谢谢！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/2955/feed</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>8个css3代码产生工具</title>
		<link>http://www.36ria.com/2927</link>
		<comments>http://www.36ria.com/2927#comments</comments>
		<pubDate>Sun, 15 Aug 2010 12:43:04 +0000</pubDate>
		<dc:creator>明河共影</dc:creator>
				<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=2927</guid>
		<description><![CDATA[今天明河推荐几个实用的css3代码产生工具，不用css3一样可以制作css3效果。 1、CSS3 Menu Generator 这是个简单的软件，用于产生各种css3菜单，内置了非常丰富的css3菜单效果。 2、CSS3 Rounded Corner Generator 用于产生css3的圆角效果，值得一提的是该站点还提供其他的css工具，比如css3示例、css验证等。 3、CSS3 Maker 明河极力推荐，非常全面的css3在线工具，可以产生圆角、文字阴影、css3动......]]></description>
			<content:encoded><![CDATA[<p>今天明河推荐几个实用的css3代码产生工具，不用css3一样可以制作css3效果。</p>
<h4>1、<a href="http://css3menu.com/index.html#download">CSS3 Menu Generator</a></h4>
<p><img class="alignleft size-full wp-image-2928" title="css3-gen-1" src="http://www.36ria.com/wp-content/uploads/2010/08/css3-gen-1.jpg" alt="" width="510" height="277" /></p>
<p>这是个简单的软件，用于产生各种css3菜单，内置了非常丰富的css3菜单效果。</p>
<h4>2、<a href="http://www.cssportal.com/css3-rounded-corner/">CSS3 Rounded Corner  Generator</a></h4>
<p><img class="alignleft size-full wp-image-2929" title="css3-gen-2" src="http://www.36ria.com/wp-content/uploads/2010/08/css3-gen-2.jpg" alt="" width="510" height="277" /></p>
<p>用于产生css3的圆角效果，值得一提的是该站点还提供其他的css工具，比如css3示例、css验证等。</p>
<h4>3、<a href="http://www.css3maker.com/">CSS3 Maker</a></h4>
<p><img class="alignleft size-full wp-image-2930" title="css3-gen-3" src="http://www.36ria.com/wp-content/uploads/2010/08/css3-gen-3.jpg" alt="" width="510" height="277" /></p>
<p>明河极力推荐，非常全面的css3在线工具，可以产生圆角、文字阴影、css3动画等。</p>
<h4>4、<a href="http://border-image.com/">Border Image</a></h4>
<p><img class="alignleft size-full wp-image-2931" title="css3-gen-4" src="http://www.36ria.com/wp-content/uploads/2010/08/css3-gen-4.jpg" alt="" width="510" height="278" /></p>
<p>css3边框图片产生器。</p>
<h4>5、<a href="http://gradients.glrzad.com/">CSS3 Gradient Generator</a></h4>
<p><img class="alignleft size-full wp-image-2932" title="css3-gen-5" src="http://www.36ria.com/wp-content/uploads/2010/08/css3-gen-5.jpg" alt="" width="510" height="277" /></p>
<p>用于在线产生css3渐变。</p>
<h4>6、<a href="http://www.fontsquirrel.com/fontface/generator">Font Squirrel  @Font-Face Kit Generator</a></h4>
<p><img class="alignleft size-full wp-image-2933" title="css3-gen-6" src="http://www.36ria.com/wp-content/uploads/2010/08/css3-gen-6.jpg" alt="" width="510" height="277" /></p>
<p>字体嵌入工具。</p>
<h4>7、<a href="http://css-tricks.com/examples/ButtonMaker/">CSS-Tricks Button  Maker</a></h4>
<p><img class="alignleft size-full wp-image-2934" title="css3-gen-7" src="http://www.36ria.com/wp-content/uploads/2010/08/css3-gen-7.jpg" alt="" width="510" height="273" /></p>
<p>css3按钮产生器</p>
<h4>8、<a href="http://www.impressivewebs.com/css3-click-chart/">CSS3 Click Chart by  Impressive Webs</a></h4>
<p><img class="alignleft size-full wp-image-2935" title="css3-gen-8" src="http://www.36ria.com/wp-content/uploads/2010/08/css3-gen-8.jpg" alt="" width="510" height="277" /></p>
<p>提供常用的css3效果的demo和源代码。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/2927/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>jquery的ajax全局事件详解—明河谈jquery</title>
		<link>http://www.36ria.com/2882</link>
		<comments>http://www.36ria.com/2882#comments</comments>
		<pubDate>Mon, 09 Aug 2010 14:31:39 +0000</pubDate>
		<dc:creator>明河共影</dc:creator>
				<category><![CDATA[jquery教程]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[明河谈jquery]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=2882</guid>
		<description><![CDATA[jquery在ajax方面是非常强大和方便的，以下是jquery进行ajax请求时方法模板： $.ajax({ &#160; &#160; &#160; &#160; &#160;&#160; type: &#34;get&#34;, &#160; &#160; &#160; &#160; &#160;&#160; url: &#34;&#34;, &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#160; data : {}, &#160; &#160; &#160; &#160; &#160;&#160; beforeSend : function(){ &#160; &#160; &#160; &#160; &#160; &#160;&#160; }, &#160; &#160; &#160; &#160; &#160;&#160; success : function(data){ &#160; ......]]></description>
			<content:encoded><![CDATA[<p>jquery在ajax方面是非常强大和方便的，以下是jquery进行ajax请求时方法模板：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$.</span><span style="color: Blue;">ajax</span><span style="color: Olive;">({</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">type</span><span style="color: Gray;">: </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">get</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">url</span><span style="color: Gray;">: </span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">data</span><span style="color: Gray;"> : </span><span style="color: Olive;">{}</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">beforeSend</span><span style="color: Gray;"> : </span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">success</span><span style="color: Gray;"> : </span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Blue;">data</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">complete</span><span style="color: Gray;"> : </span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li></ol></div>
<p>关于$.ajax()方法的使用，不是明河写这篇文章的目的，今天明河主要讲解当进行ajax请求时整个完整的事件流程。</p>
<h4>jquery的ajax方法的全部全局事件：</h4>
<ul>
<li>ajaxStart：ajax请求开始前</li>
<li>ajaxSend：ajax请求时</li>
<li>ajaxSuccess：ajax获取数据后</li>
<li>ajaxComplete：ajax请求完成时</li>
<li>ajaxError：ajax请求发生错误后</li>
<li>ajaxStop：ajax请求停止后</li>
</ul>
<p>当你使用jquery的ajax方法,不管是$.ajax()、$.get()、$.load()、$.getJSON()等都会默认触发全局事件，只是通常不绑定全局事件，但实际上这些全局事件非常有用处。</p>
<h4>ajax方法的全局事件的用处</h4>
<p>ajax全局事件，有个典型的应用场合：<br />
你的页面存在多个甚至为数不少的ajax请求，但是这些ajax请求都有相同的消息机制。ajax请求开始前显示一个提示框，提示“正在读取数据“；ajax请求成功时提示框显示“数据获取成功”；ajax请求结束后隐藏提示框。<br />
<strong>不使用全局事件的做法是：</strong><br />
给$.ajax()加上beforeSend、success、complete回调函数，在回调函数中加上处理提示框。<br />
<strong>使用全局事件的做法是：</strong></p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: Teal;">document</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">ajaxStart</span><span style="color: Olive;">(</span><span style="color: Blue;">onStart</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; .</span><span style="color: Blue;">ajaxComplete</span><span style="color: Olive;">(</span><span style="color: Blue;">onComplete</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; .</span><span style="color: Blue;">ajaxSuccess</span><span style="color: Olive;">(</span><span style="color: Blue;">onSuccess</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">onStart</span><span style="color: Olive;">(</span><span style="color: Blue;">event</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//.....</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">onComplete</span><span style="color: Olive;">(</span><span style="color: Blue;">event</span><span style="color: Gray;">, </span><span style="color: Blue;">xhr</span><span style="color: Gray;">, </span><span style="color: Blue;">settings</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//.....</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">onSuccess</span><span style="color: Olive;">(</span><span style="color: Blue;">event</span><span style="color: Gray;">, </span><span style="color: Blue;">xhr</span><span style="color: Gray;">, </span><span style="color: Blue;">settings</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//.....</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li></ol></div>
<h4>ajax方法完整事件流</h4>
<p>为了更直观的说明，明河使用Axure画了二个流程图，画的不好还请见谅，O(∩_∩)O<br />
<img src="http://www.36ria.com/wp-content/uploads/2010/08/ajax-events-1.png" alt="" title="ajax-events-1" width="601" height="277" class="alignleft size-full wp-image-2883" /><br />
<img src="http://www.36ria.com/wp-content/uploads/2010/08/ajax-events-2.png" alt="" title="ajax-events-2" width="600" height="281" class="alignleft size-full wp-image-2884" /></p>
<h4>ajax方法完整事件流演示</h4>
<p>为了让朋友更容易理解整个事件流，明河做了以下demo。</p>
<ul class="tow-columns clearfix">
<li class="l"><a href="http://www.36ria.com/demo/jqueryAjax/" class="btn-view-demo" target="_blank"></a></li>
<li class="l"><a href="http://www.36ria.com/wp-content/plugins/download-monitor/download.php?id=187" title="名称：ajax全局事件，下载次数：185，文件大小：39.46 kB" class="btn-download">点此下载</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/2882/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>使用jquery制作背景变化菜单</title>
		<link>http://www.36ria.com/2852</link>
		<comments>http://www.36ria.com/2852#comments</comments>
		<pubDate>Tue, 03 Aug 2010 06:45:58 +0000</pubDate>
		<dc:creator>明河共影</dc:creator>
				<category><![CDATA[jquery教程]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=2852</guid>
		<description><![CDATA[jquery动画函数animate是不支持背景移动动画的，即无法对backgroundPosition进行处理，需要使用一个插件，这个插件名为jquery.backgroundPosition，接下来将使用这个插件，制作一个背景变化的菜单。 制作过程 1、创建如下html菜单结构 &#60;ul&#62; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#60;li&#62;&#60;a&#160;href=&#34;http://www.36ria.com/&#34;&#62;首页&#60;/a&#62;&#60;/li&#62; &#160; &#160; &#160; &#160; &#160; &#1......]]></description>
			<content:encoded><![CDATA[<p>jquery动画函数animate是不支持背景移动动画的，即无法对backgroundPosition进行处理，需要使用一个插件，这个插件名为<strong>jquery.backgroundPosition</strong>，接下来将使用这个插件，制作一个背景变化的菜单。<br />
<img class="alignleft size-full wp-image-2853" title="backgroundAnimate" src="http://www.36ria.com/wp-content/uploads/2010/08/backgroundAnimate.png" alt="" width="320" height="288" /></p>
<ul class="tow-columns clearfix">
<li class="l"><a href="http://www.36ria.com/demo/backgroundAnimate/" class="btn-view-demo" target="_blank"></a></li>
<li class="l"><a href="http://www.36ria.com/wp-content/plugins/download-monitor/download.php?id=186" title="名称：backgroundPosition，下载次数：288，文件大小：40.23 kB" class="btn-download">点此下载</a></li>
</ul>
<h2>制作过程</h2>
<h5>1、创建如下html菜单结构</h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">ul</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">a</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://www.36ria.com/</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">首页</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">a</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://www.36ria.com/</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">关于作者</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">a</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://www.36ria.com/</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">联系作者</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">li</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">ul</span><span style="color: Olive;">&gt;</span></li></ol></div>
<h5>2、加上css样式</h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">ul</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Green;">list-style:</span><span style="color: Red;">none</span><span style="color: Gray;">;</span><span style="color: Green;">margin:</span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span><span style="color: Green;">padding:</span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">li</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span><span style="color: Green;">float:</span><span style="color: Red;">left</span><span style="color: Gray;">;</span><span style="color: Green;">width:</span><span style="color: Maroon;">100</span><span style="color: Red;">px</span><span style="color: Gray;">;</span><span style="color: Green;">margin:</span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span><span style="color: Green;">padding:</span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span><span style="color: Green;">text-align:</span><span style="color: Red;">center</span><span style="color: Gray;">;</span><span style="color: Green;">font-size:</span><span style="color: Maroon;">14</span><span style="color: Red;">px</span><span style="color: Gray;">;</span><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">li</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">a</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Green;">display:</span><span style="color: Red;">block</span><span style="color: Gray;">;</span><span style="color: Green;">padding:</span><span style="color: Maroon;">5</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">10</span><span style="color: Red;">px</span><span style="color: Gray;">;</span><span style="color: Green;">height:</span><span style="color: Maroon;">100</span><span style="color: Red;">%</span><span style="color: Gray;">;</span><span style="color: Green;">color:</span><span style="color: #00008b;">#FFF</span><span style="color: Gray;">;</span><span style="color: Green;">text-decoration:</span><span style="color: Red;">none</span><span style="color: Gray;">;</span><span style="color: Green;">border-right:</span><span style="color: Maroon;">1</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Red;">solid</span><span style="color: Gray;"> </span><span style="color: #00008b;">#FFF</span><span style="color: Gray;">;</span><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">li</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">a</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Green;">background:</span><span style="color: Gray;">url(../images/bg2.jpg) </span><span style="color: Red;">repeat</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">li</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">a</span><span style="color: Navy;">:hover</span><span style="color: Gray;">, </span><span style="color: Blue;">li</span><span style="color: Gray;"> </span><span style="color: Blue;">a</span><span style="color: Navy;">:focus</span><span style="color: Gray;">, </span><span style="color: Blue;">li</span><span style="color: Gray;"> </span><span style="color: Blue;">a</span><span style="color: Navy;">:active</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Green;">background-position:</span><span style="color: Gray;">-</span><span style="color: Maroon;">150</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span><span style="color: Olive;">}</span></li></ol></div>
<p>示例中有5个demo，共用了四张背景图片：<br />
<img src="http://www.36ria.com/wp-content/uploads/2010/08/bg.jpg" alt="" title="bg" width="199" height="100" class="alignleft size-full wp-image-2854" /><br />
<img src="http://www.36ria.com/wp-content/uploads/2010/08/bg2.jpg" alt="" title="bg2" width="300" height="50" class="alignleft size-full wp-image-2855" /><br />
<img src="http://www.36ria.com/wp-content/uploads/2010/08/bg3.jpg" alt="" title="bg3" width="199" height="300" class="alignleft size-full wp-image-2856" /><br />
<img src="http://www.36ria.com/wp-content/uploads/2010/08/bg4.jpg" alt="" title="bg4" width="199" height="300" class="alignleft size-full wp-image-2857" /><br />
分别对应相应的动画demo样式：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">#a</span><span style="color: Gray;"> </span><span style="color: Blue;">a</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Green;">background:</span><span style="color: Gray;">url(../images/bg.jpg) </span><span style="color: Red;">repeat</span><span style="color: Gray;"> -</span><span style="color: Maroon;">20</span><span style="color: Red;">px</span><span style="color: Gray;"> </span><span style="color: Maroon;">35</span><span style="color: Red;">px</span><span style="color: Gray;">;</span><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">#b</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">a</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Green;">background:</span><span style="color: Gray;">url(../images/bg2.jpg) </span><span style="color: Red;">repeat</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">#c</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">a</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Green;">background:</span><span style="color: Gray;">url(../images/bg3.jpg) </span><span style="color: Red;">repeat</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">#d</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">a</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Green;">background:</span><span style="color: Gray;">url(../images/bg4.jpg) </span><span style="color: Red;">repeat</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span><span style="color: Olive;">}</span></li></ol></div>
<h5>3、javascript脚本</h5>
<p>引入jquery库和jquery.backgroundPosition：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">script</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/javascript</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">js/jquery-1.4.2.min.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">script</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/javascript</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">js/jquery.backgroundPosition.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span></li></ol></div>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#a a</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; .</span><span style="color: Blue;">css</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span><span style="color: Blue;">backgroundPosition</span><span style="color: Gray;">: </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">-20px 35px</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">}</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; .</span><span style="color: Blue;">mouseover</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">stop</span><span style="color: Olive;">()</span><span style="color: Gray;">.</span><span style="color: Blue;">animate</span><span style="color: Olive;">({</span><span style="color: Blue;">backgroundPosition</span><span style="color: Gray;">:</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">(-20px 94px)</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">}</span><span style="color: Gray;">, </span><span style="color: Olive;">{</span><span style="color: Blue;">duration</span><span style="color: Gray;">:</span><span style="color: Maroon;">500</span><span style="color: Olive;">})</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; .</span><span style="color: Blue;">mouseout</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">stop</span><span style="color: Olive;">()</span><span style="color: Gray;">.</span><span style="color: Blue;">animate</span><span style="color: Olive;">({</span><span style="color: Blue;">backgroundPosition</span><span style="color: Gray;">:</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">(40px 35px)</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">}</span><span style="color: Gray;">, </span><span style="color: Olive;">{</span><span style="color: Blue;">duration</span><span style="color: Gray;">:</span><span style="color: Maroon;">200</span><span style="color: Gray;">, </span><span style="color: Blue;">complete</span><span style="color: Gray;">:</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">css</span><span style="color: Olive;">({</span><span style="color: Blue;">backgroundPosition</span><span style="color: Gray;">: </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">-20px 35px</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">})</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}})</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#b a</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; .</span><span style="color: Blue;">css</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span><span style="color: Blue;">backgroundPosition</span><span style="color: Gray;">: </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">0 0</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">}</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; .</span><span style="color: Blue;">mouseover</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">stop</span><span style="color: Olive;">()</span><span style="color: Gray;">.</span><span style="color: Blue;">animate</span><span style="color: Olive;">({</span><span style="color: Blue;">backgroundPosition</span><span style="color: Gray;">:</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">(-150px 0)</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">}</span><span style="color: Gray;">, </span><span style="color: Olive;">{</span><span style="color: Blue;">duration</span><span style="color: Gray;">:</span><span style="color: Maroon;">500</span><span style="color: Olive;">})</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; .</span><span style="color: Blue;">mouseout</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">stop</span><span style="color: Olive;">()</span><span style="color: Gray;">.</span><span style="color: Blue;">animate</span><span style="color: Olive;">({</span><span style="color: Blue;">backgroundPosition</span><span style="color: Gray;">:</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">(-300px 0)</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">}</span><span style="color: Gray;">, </span><span style="color: Olive;">{</span><span style="color: Blue;">duration</span><span style="color: Gray;">:</span><span style="color: Maroon;">200</span><span style="color: Gray;">, </span><span style="color: Blue;">complete</span><span style="color: Gray;">:</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">css</span><span style="color: Olive;">({</span><span style="color: Blue;">backgroundPosition</span><span style="color: Gray;">: </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">0 0</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">})</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}})</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#c a</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; .</span><span style="color: Blue;">css</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span><span style="color: Blue;">backgroundPosition</span><span style="color: Gray;">: </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">0 0</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">}</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; .</span><span style="color: Blue;">mouseover</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">stop</span><span style="color: Olive;">()</span><span style="color: Gray;">.</span><span style="color: Blue;">animate</span><span style="color: Olive;">({</span><span style="color: Blue;">backgroundPosition</span><span style="color: Gray;">:</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">(0 -250px)</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">}</span><span style="color: Gray;">, </span><span style="color: Olive;">{</span><span style="color: Blue;">duration</span><span style="color: Gray;">:</span><span style="color: Maroon;">500</span><span style="color: Olive;">})</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; .</span><span style="color: Blue;">mouseout</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">stop</span><span style="color: Olive;">()</span><span style="color: Gray;">.</span><span style="color: Blue;">animate</span><span style="color: Olive;">({</span><span style="color: Blue;">backgroundPosition</span><span style="color: Gray;">:</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">(0 0)</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">}</span><span style="color: Gray;">, </span><span style="color: Olive;">{</span><span style="color: Blue;">duration</span><span style="color: Gray;">:</span><span style="color: Maroon;">500</span><span style="color: Olive;">})</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#d a</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; .</span><span style="color: Blue;">css</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span><span style="color: Blue;">backgroundPosition</span><span style="color: Gray;">: </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">0 0</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">}</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; .</span><span style="color: Blue;">mouseover</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">stop</span><span style="color: Olive;">()</span><span style="color: Gray;">.</span><span style="color: Blue;">animate</span><span style="color: Olive;">({</span><span style="color: Blue;">backgroundPosition</span><span style="color: Gray;">:</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">(0 -250px)</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">}</span><span style="color: Gray;">, </span><span style="color: Olive;">{</span><span style="color: Blue;">duration</span><span style="color: Gray;">:</span><span style="color: Maroon;">500</span><span style="color: Olive;">})</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; .</span><span style="color: Blue;">mouseout</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">stop</span><span style="color: Olive;">()</span><span style="color: Gray;">.</span><span style="color: Blue;">animate</span><span style="color: Olive;">({</span><span style="color: Blue;">backgroundPosition</span><span style="color: Gray;">:</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">(0 0)</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">}</span><span style="color: Gray;">, </span><span style="color: Olive;">{</span><span style="color: Blue;">duration</span><span style="color: Gray;">:</span><span style="color: Maroon;">500</span><span style="color: Olive;">})</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span></li>
<li><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li></ol></div>
<p>引入jquery.backgroundPosition后animate()开始支持backgroundPosition背景位移动画。后二个颜色渐变的例子，也是通过渐变背景图片上下移动产生的。</p>
<p>原文：<a href="http://snook.ca/archives/javascript/jquery-bg-image-animations/">http://snook.ca/archives/javascript/jquery-bg-image-animations/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/2852/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>基础模板的缺陷—jquery插件开发进阶教程（2）</title>
		<link>http://www.36ria.com/2847</link>
		<comments>http://www.36ria.com/2847#comments</comments>
		<pubDate>Mon, 02 Aug 2010 01:56:41 +0000</pubDate>
		<dc:creator>明河共影</dc:creator>
				<category><![CDATA[jquery教程]]></category>
		<category><![CDATA[jquery插件开发教程]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=2847</guid>
		<description><![CDATA[这个系列的第一篇教程明河讲述了：jquery插件开发规范，今天这篇教程明河将讲述jquery插件基础模板的缺陷。 在jquery插件实战教程，明河曾以Colortip文字提示插件，讲解了jquery插件的基础模板： (function($){ &#160; &#160; $.fn.插件名 = function(settings){&#160; &#160; &#160; &#160; &#160; var&#160;defaultSettings = { &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; } &#160; &#160; &#160; &#160; /* 合并默认参数......]]></description>
			<content:encoded><![CDATA[<p>这个系列的第一篇教程明河讲述了：<a href="http://www.36ria.com/2822">jquery插件开发规范</a>，今天这篇教程明河将讲述jquery插件基础模板的缺陷。<br />
<img src="http://www.36ria.com/wp-content/uploads/2010/08/plugin-t.png" alt="" title="plugin-t" width="600" height="240" class="alignleft size-full wp-image-2848" /><br />
在<a rel="bookmark" href="http://www.36ria.com/2768">jquery插件实战教程</a>，明河曾以Colortip文字提示插件，讲解了jquery插件的基础模板：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Gray;">$</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; $.</span><span style="color: Blue;">fn</span><span style="color: Gray;">.插件名 = </span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Blue;">settings</span><span style="color: Olive;">){</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">defaultSettings</span><span style="color: Gray;"> = </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">/* 合并默认参数和用户自定义参数 */</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">settings</span><span style="color: Gray;"> = $.</span><span style="color: Blue;">extend</span><span style="color: Olive;">({}</span><span style="color: Gray;">,</span><span style="color: Blue;">defaultSettings</span><span style="color: Gray;">,</span><span style="color: Blue;">settings</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">each</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Olive;">})(</span><span style="color: Blue;">jQuery</span><span style="color: Olive;">)</span></li></ol></div>
<p>（明河再次提醒，这个基础模板很重要，尽量看懂用懂它。）<br />
在教程的最后，明河同时也指出了<a href="http://www.36ria.com/2818">Colortip这个插件的缺陷</a>，Colortip的缺陷，归根到底还是jquery插件基础模板的缺陷引起的。</p>
<h2>jquery插件基础模板的缺陷</h2>
<h5>1、难以实现类与类之间的继承</h5>
<p>比如明河写了yitip，原理与colortip一样，但是无法通过扩展colortip的方式，只能重新写个完整插件。 </p>
<h5>2、无法开放API供外部调用</h5>
<p>这是jquery插件基础模板最大的缺陷，以colortip例子，在初始化colortip后，你无法改变提示框出现的位置、内容、动画效果、延迟时间等，colortip没有相应的API，但是明河写的yitip，却可以实现相应的控制。<br />
colortip的演示：<a href="http://www.36ria.com/demo/colortips/colortips.html">http://www.36ria.com/demo/colortips/colortips.html</a><br />
yitip的演示：<a href="http://www.36ria.com/demo/yitip/">http://www.36ria.com/demo/yitip/</a><br />
可以看到yitip提供了相应的API供使用者操作，那么yitip又是如何实现API的开放呢？接下来的教程明河会展开叙述。</p>
<h5>3、无法提供自定义事件支持</h5>
<p>比如你想要在提示框显示前弹出一个对话框，在隐藏提示框后删除提示框等。</p>
<h5>4、无法模拟出接口。</h5>
<p>你无法很直观的知道你所使用的方法插件支不支持，插件到底有几个方法，传递给方法的参数个数和数据类型对不对等。</p>
<h5>5、缺少debug能力。</h5>
<p>插件有可能会调用失败，这时候你希望知道插件在调用的过程中所发生的所有的事，你需要打印一系列的流程到调用面板中，jquery插件基础模板无法提供这一功能。</p>
<h4>结语</h4>
<p>正是jquery插件基础模板存在如此多的缺陷，所以明河才觉得有必要讲述一个jquery插件的高级模板，用于解决这些缺陷。<br />
下一篇教程：<strong>jquery插件的高级模板</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/2847/feed</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>cornerV2.0—jquery强大的圆角插件</title>
		<link>http://www.36ria.com/2844</link>
		<comments>http://www.36ria.com/2844#comments</comments>
		<pubDate>Sun, 01 Aug 2010 13:58:13 +0000</pubDate>
		<dc:creator>明河共影</dc:creator>
				<category><![CDATA[jquery插件]]></category>
		<category><![CDATA[jquery圆角插件]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=2844</guid>
		<description><![CDATA[jquery.corner是一款强大的圆角插件（所产生的不止只是圆角效果），兼容包括IE6、IE7、IE8、firefox、Opera 、Safari、Chrome等主流浏览器。 原理说明： 产生圆角的技术很多，jquery.corner是利用产生十几个带有边框的层（宽度不同），来模拟四个不同的边角的效果，所以可以保证所有浏览器的兼容性。（具体可以用firebug查看其层的分布和样式） 初始化插件： $(&#34;.demo&#34;).corner()......]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-2845" title="corner" src="http://www.36ria.com/wp-content/uploads/2010/08/corner.png" alt="" width="600" height="254" /></p>
<p>jquery.corner是一款强大的圆角插件（所产生的不止只是圆角效果），兼容包括IE6、IE7、IE8、firefox、Opera 、Safari、Chrome等主流浏览器。</p>
<h4>原理说明：</h4>
<p>产生圆角的技术很多，jquery.corner是利用产生十几个带有边框的层（宽度不同），来模拟四个不同的边角的效果，所以可以保证所有浏览器的兼容性。（具体可以用firebug查看其层的分布和样式）</p>
<h4>初始化插件：</h4>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">.demo</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">corner</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li></ol></div>
<ul class="tow-columns clearfix">
<li class="l"><a href="http://www.36ria.com/demo/corner" class="btn-view-demo" target="_blank"></a></li>
<li class="l"><a href="http://www.36ria.com/wp-content/plugins/download-monitor/download.php?id=185" title="名称：corner，下载次数：225，文件大小：39.22 kB" class="btn-download">点此下载</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/2844/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>明河关于jquery的一些解答—明河谈jquery</title>
		<link>http://www.36ria.com/2839</link>
		<comments>http://www.36ria.com/2839#comments</comments>
		<pubDate>Sat, 31 Jul 2010 07:08:53 +0000</pubDate>
		<dc:creator>明河共影</dc:creator>
				<category><![CDATA[jquery]]></category>
		<category><![CDATA[jquery解答]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=2839</guid>
		<description><![CDATA[新版的RIA之家已经上线2个多月了，这二个月来，不少朋友向明河询问jquery的问题。今天突然萌生将这些问题整理出来供遇到类似困惑的朋友做参考的想法，于是就写了这篇文章，答案只代表明河个人观点，难免有错误，仅供参考。 问：学javascript好还是jquery好？ 明河答：这是个伪命题，随着jquery的大行其道，很多新手以为jquery是一种语言，其实jquery只是一个javascript的框架（ja......]]></description>
			<content:encoded><![CDATA[<p>新版的RIA之家已经上线2个多月了，这二个月来，不少朋友向明河询问jquery的问题。今天突然萌生将这些问题整理出来供遇到类似困惑的朋友做参考的想法，于是就写了这篇文章，答案只代表明河个人观点，难免有错误，仅供参考。</p>
<p><img class="alignleft size-full wp-image-2841" title="jquery-answer" src="http://www.36ria.com/wp-content/uploads/2010/07/jquery-answer.png" alt="" width="600" height="240" /></p>
<h5>问：学javascript好还是jquery好？</h5>
<p>明河答：这是个伪命题，随着jquery的大行其道，很多新手以为jquery是一种语言，其实jquery只是一个javascript的框架（javascript的框架很多，比如ext、dojo、yui等），本质还是javascript，想学好用好jquery绕不开javascript。</p>
<h5>问：先学javascript，还是先学jquery？</h5>
<p>明河答：这是类似先有鸡还是先有蛋的问题，很多朋友是先接触jquery然后才回过头来学javascript。我个人是推荐先学javascript，后学jquery，因为很多朋友见识到jquery的便利后，我觉得原生javascript异常笨拙，影响到学js的热情，但不学js，会很大限制你jquery的水平。</p>
<h5>问：从开始学jquery，先学什么？从哪方面入手？</h5>
<p>明河答：这个问题不少人问过明河，我回答的第一句话都一样：请买本jquery的书，从头看到<strong>练到</strong>尾。我知道很多朋友不喜欢看书，认为google（明河一向忽略百度，理由你懂的&#8230;&#8230;）可以解决一切，明河并不否认，但依旧推荐你耐下心来看完一本书，也许你会有不一样的体会。</p>
<h5>问：能推荐几本jquery方面的好书吗？</h5>
<p>明河答：明河一向觉得一本好书，就是一个好的老师，jquery方面的书很多，明河推荐以下几本：</p>
<p>1）入门书</p>
<ul>
<li>jQuery实战</li>
<li>锋利的jQuery</li>
</ul>
<p>二选一，明河更推荐《jQuery实战》</p>
<p>2）进阶书</p>
<ul>
<li>jQuery Cookbook</li>
<li>jQuery1.3 + php</li>
</ul>
<p>后二本只有英文版，你可以在网上载的到，尤其是《jQuery Cookbook》，明河严重推荐。</p>
<p>3）javascript好书</p>
<ol>
<li>javascript高级编程（第二版）</li>
<li>javascript权威指南</li>
</ol>
<p>二本二选一，明河推荐javascript高级编程。</p>
<h5>问：学jquery好还是学ext好？</h5>
<p>明河答：jquery拥有最为广泛的群众基础，当然ext用的人也不少，jquery和ext正好明河都学过，jquery与ext是二种风格的框架，没有简单的谁更好的问题，jquery的优势在于轻量级、数以千计的插件，而ext的优势在于完整和强大的UI，应用于企业级。</p>
<p>二者是可以共存的，所以可以根据你实际的使用环境而变化。明河是推荐二者都学，可以先学jquery后学ext，javascript基础好的（熟悉javascript面向对象编程）更要学ext。</p>
<h5>问：发现自己的jquery水平遇到瓶颈了，没法提高，如何办？</h5>
<p>明河答：这是个好现象，说明你的前端编程已经到了要质变的临界点，这时候请思考一下几个问题：</p>
<ul>
<li>你写的代码效率如何？有没有优化的空间和可能？</li>
<li>你能够完成大部分的web前端UI功能吗？</li>
<li>你能够快速的完成前端开发吗？</li>
<li>你能够深入的把握可用性、web标准和用户体验吗？</li>
<li>&#8230;&#8230;&#8230;</li>
</ul>
<p>当你思考这些问题的时候，我想你会和明河一样发现，前端还有无穷的潜力等着你去挖掘。</p>
<h5>问：如何突破jquery水平的瓶颈？</h5>
<p>明河答：其实没什么太多的技巧，就是多看多练。多看，指的是多看别人写的jquery插件源代码，还有多看优秀的前端博客，不管是国内的还是国外的；多练，指的是试着自己写jquery插件，要多写代码。</p>
<h5>问：如何写一个jquery插件？</h5>
<p>明河答：明河会发布一系列的教程，有兴趣的朋友可以多留意下。别把jquery插件看的太玄，别因为自己是新手就不敢去写，只要去尝试了，你会慢慢掌握其中的技巧。</p>
<p>先写到这里，关于jquery，如果你有什么疑问，可以给明河留言，愿看到这篇文章的朋友，jquery水平能够快速进步！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/2839/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>实用jquery代码片段集合（下）</title>
		<link>http://www.36ria.com/2836</link>
		<comments>http://www.36ria.com/2836#comments</comments>
		<pubDate>Thu, 29 Jul 2010 01:51:40 +0000</pubDate>
		<dc:creator>明河共影</dc:creator>
				<category><![CDATA[jquery教程]]></category>
		<category><![CDATA[jquery代码片段]]></category>

		<guid isPermaLink="false">http://www.36ria.com/?p=2836</guid>
		<description><![CDATA[如何隐藏除了特定选择器下的全部对象 $('#target div:not(#exclude)').hide();&#160; &#160;//或者&#160; $('#target').children().filter(':not(#exclude)').hide(); filter()起到过滤的作用。 寻找带有指定字符串的元素 var foundin = $('*:contains(&#34;明河&#34;)'); 获取垂直滚动距离 alert($(document).scrollTop()); scrollTop()非常实用的一个方法。 向表格追加一行数据 $('#myTable tr:last').after('&#60;tr&#62;...&#60;/tr&#62;'); 超过一个属......]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.36ria.com/wp-content/uploads/2010/07/jquery-snippets-2.png" alt="" title="jquery-snippets-2" width="600" height="240" class="alignleft size-full wp-image-2837" /></p>
<h5>如何隐藏除了特定选择器下的全部对象</h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#target div:not(#exclude)</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">hide</span><span style="color: Olive;">()</span><span style="color: Gray;">;&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: #ffa500;">//或者&nbsp; </span></li>
<li><span style="color: Gray;"> $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#target</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">children</span><span style="color: Olive;">()</span><span style="color: Gray;">.</span><span style="color: Blue;">filter</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">:not(#exclude)</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">hide</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li></ol></div>
<p>filter()起到过滤的作用。</p>
<h5>寻找带有指定字符串的元素</h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">foundin</span><span style="color: Gray;"> = $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">*:contains(&quot;明河&quot;)</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<h5>获取垂直滚动距离</h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">alert</span><span style="color: Olive;">(</span><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: Teal;">document</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">scrollTop</span><span style="color: Olive;">())</span><span style="color: Gray;">;</span></li></ol></div>
<p>scrollTop()非常实用的一个方法。</p>
<h5>向表格追加一行数据</h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#myTable tr:last</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">after</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&lt;tr&gt;...&lt;/tr&gt;</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<h5>超过一个属性时的过滤</h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">elements</span><span style="color: Gray;"> = $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#someid input[type=sometype][value=somevalue]</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">get</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li></ol></div>
<h5>让cookies在X分钟后过期</h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">date</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Teal;">Date</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">date</span><span style="color: Gray;">.</span><span style="color: Blue;">setTime</span><span style="color: Olive;">(</span><span style="color: Blue;">date</span><span style="color: Gray;">.</span><span style="color: Blue;">getTime</span><span style="color: Olive;">()</span><span style="color: Gray;"> + </span><span style="color: Olive;">(</span><span style="color: Blue;">x</span><span style="color: Gray;"> * </span><span style="color: Maroon;">60</span><span style="color: Gray;"> * </span><span style="color: Maroon;">1000</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">$.</span><span style="color: Blue;">cookie</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">example</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">foo</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Olive;">{</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">expires</span><span style="color: Gray;">: </span><span style="color: Blue;">date</span><span style="color: Gray;"> </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li></ol></div>
<h5>选择从第一个到第X个的元素</h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">//从第一个到第10个</span></li>
<li><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">a</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">slice</span><span style="color: Olive;">(</span><span style="color: Maroon;">0</span><span style="color: Gray;">,</span><span style="color: Maroon;">10</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #ffa500;">//或者</span></li>
<li><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">a:lt(10)</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<h5>获取客户端的IP</h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$.</span><span style="color: Blue;">getJSON</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://jsonip.appspot.com?callback=?</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Blue;">data</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">alert</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">你的IP：</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> + </span><span style="color: Blue;">data</span><span style="color: Gray;">.</span><span style="color: Blue;">ip</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li></ol></div>
<p>这是利用了jsonip.appspot.com提供的取IP服务。</p>
<h5>解析XML数据源</h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;?</span><span style="color: Green;">xml</span><span style="color: Gray;"> </span><span style="color: #00008b;">version</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">1.0</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">?&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">result</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">item</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">id</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">1</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">id</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">title</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">title1</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">title</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">description</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">desc1</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">description</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">item</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">item</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">id</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">2</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">id</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">title</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">title2</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">title</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">description</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">desc2</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">description</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">item</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">&lt;!-- ... --&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">result</span><span style="color: Olive;">&gt;</span></li></ol></div>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$.</span><span style="color: Blue;">get</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">file.xml</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Olive;">{}</span><span style="color: Gray;">,</span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Blue;">data</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">item</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">data</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">each</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;"> $</span><span style="color: Green;">this</span><span style="color: Gray;">&amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">;&amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">;&amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">;&amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">;&amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">;&amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; = $</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">id</span><span style="color: Gray;"> &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">;&amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">;&amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">;&amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">;&amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">;&amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">;= $</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">find</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">id</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">text</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">title</span><span style="color: Gray;"> &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">;&amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">;&amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">;&amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">;= $</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">find</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">title</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">text</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">description</span><span style="color: Gray;"> = $</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">find</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">description</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">text</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//do something ...</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li></ol></div>
<h5>获取在id中的数字</h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Gray;"> </span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">sites</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">a</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">site_1</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://siteA.com</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">siteA</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">a</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">site_2</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://siteB.com</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">siteB</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">a</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">site_3</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://siteB.com</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">siteC</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; ...</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li></ol></div>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">#sites a</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">click</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;"> $</span><span style="color: Green;">this</span><span style="color: Gray;"> &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">;&amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">;= $</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">nmb</span><span style="color: Gray;"> &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">;&amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">; &amp;</span><span style="color: Blue;">nbsp</span><span style="color: Gray;">;= $</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">attr</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">id</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">match</span><span style="color: Olive;">(</span><span style="color: #8b0000;">/</span><span style="color: Red;">site_(\d+)</span><span style="color: #8b0000;">/</span><span style="color: Olive;">)[</span><span style="color: Maroon;">1</span><span style="color: Olive;">]</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; ...</span></li>
<li><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li></ol></div>
<h5>将类似12343778 转成 12.343.778的形式 </h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">delimiter</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">.</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#result</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">html</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .</span><span style="color: Blue;">toString</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .</span><span style="color: Blue;">replace</span><span style="color: Olive;">(</span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Teal;">RegExp</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">(^</span><span style="color: Navy;">\\</span><span style="color: Red;">d{</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">+</span><span style="color: Olive;">(</span><span style="color: Gray;">$</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">html</span><span style="color: Olive;">()</span><span style="color: Gray;">.</span><span style="color: Blue;">toString</span><span style="color: Olive;">()</span><span style="color: Gray;">.</span><span style="color: Blue;">length</span><span style="color: Gray;">%</span><span style="color: Maroon;">3</span><span style="color: Gray;">||-</span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">})(?=</span><span style="color: Navy;">\\</span><span style="color: Red;">d{3})</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">$1</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> + </span><span style="color: Blue;">delimiter</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .</span><span style="color: Blue;">replace</span><span style="color: Olive;">(</span><span style="color: #8b0000;">/</span><span style="color: Red;">(\d{3})(?=\d)</span><span style="color: #8b0000;">/g</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">$1</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> + </span><span style="color: Blue;">delimiter</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<p>这个正则值得收藏，颇为经典。</p>
<h5>向firebug的控制面板发送消息</h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">jQuery</span><span style="color: Gray;">.</span><span style="color: Blue;">fn</span><span style="color: Gray;">.</span><span style="color: Blue;">log</span><span style="color: Gray;"> = </span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Blue;">msg</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">console</span><span style="color: Gray;">.</span><span style="color: Blue;">log</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">%s: %o</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: Blue;">msg</span><span style="color: Gray;">, </span><span style="color: Green;">this</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">this</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">$</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#some_div</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">find</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">li.source &gt; input:checkbox</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">log</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">sources to uncheck</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">removeAttr</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">checked</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<h5>获取图片的宽高</h5>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">img</span><span style="color: Gray;"> = $</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">#imageid</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">theImage</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Teal;">Image</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">theImage</span><span style="color: Gray;">.</span><span style="color: Blue;">src</span><span style="color: Gray;"> = </span><span style="color: Blue;">img</span><span style="color: Gray;">.</span><span style="color: Blue;">attr</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">src</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">alert</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Width: </span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> + </span><span style="color: Blue;">theImage</span><span style="color: Gray;">.</span><span style="color: Blue;">width</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">alert</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Height: </span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> + </span><span style="color: Blue;">theImage</span><span style="color: Gray;">.</span><span style="color: Blue;">height</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.36ria.com/2836/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

