<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
 <channel>
  <title>摄氏零度以后...</title>
  <link>http://jiachen.blogbus.com</link>
  <description><![CDATA[Digital Technology Solution / Service]]></description>
  <generator> by blogbus.com </generator>
  <lastBuildDate>Thu, 01 Jan 1970 07:00:00 +0700</lastBuildDate>
  <image>
									<url>http://public.blogbus.com/profile/head.gif</url>
									<title>摄氏零度以后...</title>
									<link>http://jiachen.blogbus.com</link>
								</image>  <item>
   <title>利用CSS来preload图片或者改善用户体验</title>
   <description><![CDATA[<p>刚看到一文章介绍利用CSS进行图片的preload，这个思路貌似不错：</p>
<pre>#preloader {
	/* Images you want to preload*/
	background-image: url(image1.jpg);
	background-image: url(image2.jpg);
	background-image: url(image3.jpg);
	width: 0px;
	height: 0px;
	display: inline;
}
</pre>
<p>又或者给背景一个大的position将图片推出浏览区域来实现预加载等等。</p>
<p>利用CSS还能有效的改善用户体验，看看这个：</p>
<pre>img { background: url(loadingHourGlass.gif) no-repeat 50% 50%; }
</pre>
<p>咔咔，知道是干嘛的了吗&nbsp;<img src="http://public.blogbus.com/biaoqing/zhairen/17.gif" border="0" alt="" /></p><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="http://jiachen.blogbus.com/logs/48191296.html">资料:CSS的私有属性声明</a> 2009-10-12</div><div><a href="http://jiachen.blogbus.com/logs/33723411.html">双飞翼布局[转]</a> 2009-01-12</div><div><a href="http://jiachen.blogbus.com/logs/21432207.html">IE6中双margin宽度的解决</a> 2008-05-23</div><div><a href="http://jiachen.blogbus.com/logs/14902125.html">大巴的模板定制功能还是不错DI</a> 2008-02-03</div><div><a href="/logs/38674318.html">IE条件注释</a> 2009-04-29</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fjiachen.blogbus.com%2Flogs%2F49315195.html&title=%E5%88%A9%E7%94%A8CSS%E6%9D%A5preload%E5%9B%BE%E7%89%87%E6%88%96%E8%80%85%E6%94%B9%E5%96%84%E7%94%A8%E6%88%B7%E4%BD%93%E9%AA%8C">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://jiachen.blogbus.com/logs/49315195.html</link>
   <author></author>
   <pubDate>Wed, 28 Oct 2009 09:56:31 +0800</pubDate>
  </item>
  <item>
   <title>Google 搜索排名机制根本不鸟网站的关键字元标签</title>
   <description><![CDATA[<p>引用：<a href="http://bbs.php168.com/read-bbs-tid-266484.html">http://bbs.php168.com/read-bbs-tid-266484.html</a></p>
<p><span style="font-family: Arial; line-height: 24px; border-collapse: collapse; color: #333333;">在很多网站不断的把各种关键字加入到网页的keywords元标签里的时候，Google今天提醒大家，我们的排名系统是根本不鸟Keywords滴哦。</span></p>
<p><span style="font-family: Arial; line-height: 24px; border-collapse: collapse; color: #333333;"><span style="border-collapse: separate; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 22px;">假设你拥有两个网站，Alice站和Bob站。Alice站是AliceCo公司的官网，而Bob则是BobCo公司的官方。如果有一天你将Alice站的Keywords原封不动的复制到Bob站，甚至包含了AliceCo这个关键字，那么你搜索AliceCo，Bob站的排名会有提升吗？</span></span></p>
<p><span style="font-family: Arial; line-height: 24px; border-collapse: collapse; color: #333333;"><span style="border-collapse: separate; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 22px;">就09年9月的Google搜索结果来说，答案绝对是否定的。下面是四个问答：</span></span></p>
<p><strong style="outline-style: none; outline-width: initial; outline-color: initial;">问：Google曾经用过Keywords元字段来决定搜索结果排名吗？</strong><br style="outline-style: none; outline-width: initial; outline-color: initial;" />答：简单的说，不。Google在销售的Google Search Appliance确实有使用元标签匹配的功能，且包括Keywords，但这是用于企业内部的搜索，跟我们的互联网搜索完全不同。我们的网页搜索是完全无视Keywords的，你在Keywords里做的所有努力都是徒劳的。</p>
<p><strong style="outline-style: none; outline-width: initial; outline-color: initial;">问：为什么Google不鸟关键字元标签？</strong><br style="outline-style: none; outline-width: initial; outline-color: initial;" />答：大概十年前，搜索引擎只能根据网页的内容来判断一个网站，而无法考虑到其它因素（比如链接），而在最近，关键字元标签已经成为毫无关系的因素了，因为浏览者根本看不到这些关键字，而且关键字经常被网站主滥用，数年前Google就已经不鸟关键字元标签了。</p>
<p><strong style="outline-style: none; outline-width: initial; outline-color: initial;">问：这意味着Google完全无视所有的元字段吗？</strong><br style="outline-style: none; outline-width: initial; outline-color: initial;" />答：当然不，Google还是支持其它元字段的，详情见此。比如，我们有时会将&ldquo;descriptions&rdquo;描述元字段作为搜索结果的文本显示出来，如下图所示。<br style="outline-style: none; outline-width: initial; outline-color: initial;" /></p>
<p><span style="font-family: Arial; line-height: 24px; border-collapse: collapse; color: #333333;">
<div style="outline-style: none; outline-width: initial; outline-color: initial; word-break: break-all; word-wrap: break-word; padding: 0px; margin: 0px;"><img style="outline-style: none; outline-width: initial; outline-color: initial; border: 0px initial initial;" onclick="if(this.width&gt;screen.width-461) window.open('http://www.chinaz.com/upimg/allimg/090922/1406330.png');" src="http://www.chinaz.com/upimg/allimg/090922/1406330.png" border="0" alt="" /></div>
</span></p>
<p>但是，descriptions也只是用于显示搜索结果的网页介绍，它对搜索排名也完全没有任何影响。</p>
<p><span style="font-family: Arial; line-height: 24px; border-collapse: collapse; color: #333333;"><strong style="outline-style: none; outline-width: initial; outline-color: initial;">问：这意味着Google一直都会无视Keywords？</strong><br style="outline-style: none; outline-width: initial; outline-color: initial;" />答：也许Google未来会用这些数据吧，不过可能性也不大。Google早就无视Keywords了，现在我们也看不到改变这种政策的缘由。</span></p>
<p style="text-align: right;"><span style="font-family: Arial; line-height: 24px; border-collapse: collapse; color: #333333;">Via&nbsp;<a style="outline-style: none; outline-width: initial; outline-color: initial; text-decoration: none; color: #0070af;" href="http://googlewebmastercentral.blogspot.com/2009/09/google-does-not-use-keywords-meta-tag.html" target="_blank"><span style="outline-style: none; outline-width: initial; outline-color: initial; color: #2970a6;">Google Webmaster Central Blog</span></a></span></p><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="http://jiachen.blogbus.com/logs/27307701.html">搜寻引擎最佳化[from wikipedia]</a> 2008-08-07</div><div><a href="/logs/47262973.html">判断iframe是否加载完的完美方法</a> 2009-09-28</div><div><a href="/logs/28451836.html">难搬瞎搞一记——男女五行配婚</a> 2008-09-02</div><div><a href="/logs/28129794.html">全画幅上焦距和视场的关系</a> 2008-08-25</div><div><a href="/logs/15423930.html">Effect.Shrink</a> 2008-02-15</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fjiachen.blogbus.com%2Flogs%2F48392690.html&title=Google+%E6%90%9C%E7%B4%A2%E6%8E%92%E5%90%8D%E6%9C%BA%E5%88%B6%E6%A0%B9%E6%9C%AC%E4%B8%8D%E9%B8%9F%E7%BD%91%E7%AB%99%E7%9A%84%E5%85%B3%E9%94%AE%E5%AD%97%E5%85%83%E6%A0%87%E7%AD%BE">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://jiachen.blogbus.com/logs/48392690.html</link>
   <author></author>
   <pubDate>Wed, 14 Oct 2009 17:16:16 +0800</pubDate>
  </item>
  <item>
   <title>分享几个天气预报数据源，开发中很实用[转贴备用]</title>
   <description><![CDATA[<p>
<p>在日常的开发工作中，总是碰到要在站点的某个位置显示天气情况！！经过一段时间的积累，本人总算对这项需求把握的游刃有余，哈哈~</p>
<p>OK,废话不多说，切入正题。。。。</p>
<p>下面是几个很权威的站点：（我都是以福州为例子的，实际使用中可更改）</p>
<p>http://www.nmc.gov.cn/weatherdetail/58847.html</p>
<p>http://www.cma.gov.cn/tqyb/v2/cityweather.php?id=58847</p>
<p>http://wap.weather.com.cn/wap/58847/h24/（WAP的，嘿嘿，干扰内容忒少，非常容易采集）</p>
<p>http://www.weather.com.cn/static/html/weather_cj.shtml(这里有超多的样式了，挑吧)</p>
<p>比如这个：http://m.weather.com.cn/data/101230101.html（这个是JSON数据，PHP的json_decode函数很好弄它）</p>
<p>不过这个中国气象网老在防采集，树大招风咯，哈哈</p>
<p>$city="福州";</p>
<p>$url="http://weather.cn.yahoo.com/fetchdata.html?city=".rawurlencode($city); //UTF-8编码雅虎的天气，纯数据，具体的含义看雅虎官方的天气</p>
<p>http://qq.ip138.com/weather/fujian/FuZhou.htm(这个不知道是腾讯的天气数据来源，也很好采集)</p>
<p>http://www.tq121.com.cn/icbc/detail1.php?city=福州（工行的天气频道，呵呵）</p>
<p>http://www.tq121.com.cn/citybook/soufun/index.php?city=福州（搜房网）</p>
<p>http://www.tq121.com.cn/msnweather/detail.php?city=福州（MSN的吧？）</p>
<p>http://www.tq121.com.cn/product/p1/（这个最后的p1,可以换成p2,p3,p4,p5，具体我也没有测试一共多少个P）</p>
<p>http://www.soso.com/tb.q?cid=tb.tq&amp;cin=&amp;city=福州（这也是一个很正的位置，腾讯搜搜工具栏的天气预报）</p>
<p>陆续再更新吧，如果发现了更好的，我会拿出来分享滴</p>
</p><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="/logs/49315195.html">利用CSS来preload图片或者改善用户体验</a> 2009-10-28</div><div><a href="/logs/33723411.html">双飞翼布局[转]</a> 2009-01-12</div><div><a href="/logs/32827552.html">Canvas使用教程——图片应用</a> 2008-12-22</div><div><a href="/logs/29596111.html">Canvas使用教程——图形绘制</a> 2008-09-25</div><div><a href="/logs/21432207.html">IE6中双margin宽度的解决</a> 2008-05-23</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fjiachen.blogbus.com%2Flogs%2F48276969.html&title=%E5%88%86%E4%BA%AB%E5%87%A0%E4%B8%AA%E5%A4%A9%E6%B0%94%E9%A2%84%E6%8A%A5%E6%95%B0%E6%8D%AE%E6%BA%90%EF%BC%8C%E5%BC%80%E5%8F%91%E4%B8%AD%E5%BE%88%E5%AE%9E%E7%94%A8%5B%E8%BD%AC%E8%B4%B4%E5%A4%87%E7%94%A8%5D">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://jiachen.blogbus.com/logs/48276969.html</link>
   <author></author>
   <pubDate>Tue, 13 Oct 2009 10:46:53 +0800</pubDate>
  </item>
  <item>
   <title>资料:CSS的私有属性声明</title>
   <description><![CDATA[<p>针对IE，常见bug的处理，haslayout的触发，放在标准CSS代码的后面。比如：</p>
<pre>.clearfix:after{content:"\0020"; display:block; height:0; clear:both;}
.clearfix{*zoom:1;/*IE haslayout*/}
.box {float:left;margin-left:20px;_display:inline;/*双倍margin bug*/}</pre>
<p>以后的浏览器对CSS的处理都采用W3C css2.1规范为主，私有属性为辅的策略，比如：</p>
<ul>
<li>Firefox：-moz-</li>
<li>IE8：-ms-</li>
<li>Safari &amp; Chrome：-webkit-</li>
<li>Opera：-o-</li>
</ul><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="http://jiachen.blogbus.com/logs/49315195.html">利用CSS来preload图片或者改善用户体验</a> 2009-10-28</div><div><a href="http://jiachen.blogbus.com/logs/33723411.html">双飞翼布局[转]</a> 2009-01-12</div><div><a href="http://jiachen.blogbus.com/logs/21432207.html">IE6中双margin宽度的解决</a> 2008-05-23</div><div><a href="http://jiachen.blogbus.com/logs/14902125.html">大巴的模板定制功能还是不错DI</a> 2008-02-03</div><div><a href="/logs/32827552.html">Canvas使用教程——图片应用</a> 2008-12-22</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fjiachen.blogbus.com%2Flogs%2F48191296.html&title=%E8%B5%84%E6%96%99%3ACSS%E7%9A%84%E7%A7%81%E6%9C%89%E5%B1%9E%E6%80%A7%E5%A3%B0%E6%98%8E">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://jiachen.blogbus.com/logs/48191296.html</link>
   <author></author>
   <pubDate>Mon, 12 Oct 2009 10:04:39 +0800</pubDate>
  </item>
  <item>
   <title>判断iframe是否加载完的完美方法</title>
   <description><![CDATA[<p>原帖：<a href="http://www.blueidea.com/tech/web/2009/7024.asp">http://www.blueidea.com/tech/web/2009/7024.asp</a></p>
<pre>var iframe = document.createElement("iframe");
iframe.src = http://www.planabc.net;
if (iframe.attachEvent){
    iframe.attachEvent("onload", function(){
        alert("Local iframe is now loaded.");
    });
} else {
    iframe.onload = function(){
        alert("Local iframe is now loaded.");
    };
}
document.body.appendChild(iframe);
</pre><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="http://jiachen.blogbus.com/logs/34153291.html">如何判断脚本加载完成【转】</a> 2009-01-20</div><div><a href="http://jiachen.blogbus.com/logs/34148035.html">用JS获取图片尺寸</a> 2009-01-20</div><div><a href="http://jiachen.blogbus.com/logs/33707113.html">08年 ，JavaScript总结[转]</a> 2009-01-12</div><div><a href="http://jiachen.blogbus.com/logs/32827552.html">Canvas使用教程——图片应用</a> 2008-12-22</div><div><a href="http://jiachen.blogbus.com/logs/29596111.html">Canvas使用教程——图形绘制</a> 2008-09-25</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fjiachen.blogbus.com%2Flogs%2F47262973.html&title=%E5%88%A4%E6%96%ADiframe%E6%98%AF%E5%90%A6%E5%8A%A0%E8%BD%BD%E5%AE%8C%E7%9A%84%E5%AE%8C%E7%BE%8E%E6%96%B9%E6%B3%95">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://jiachen.blogbus.com/logs/47262973.html</link>
   <author></author>
   <pubDate>Mon, 28 Sep 2009 11:09:50 +0800</pubDate>
  </item>
  <item>
   <title>IE条件注释</title>
   <description><![CDATA[<p>老是要忘记，在此记录一下！</p>
<ul>
<li>lt ：就是Less than的简写，也就是小于的意思。</li>
<li>lte ：就是Less than or equal to的简写，也就是小于或等于的意思。</li>
<li>gt ：就是Greater than的简写，也就是大于的意思。</li>
<li>gte：就是Greater than or equal to的简写，也就是大于或等于的意思。</li>
<li>!：就是不等于的意思，跟javascript里的不等于判断符相同。</li>
</ul>
<div><br /></div>
<div><strong>Eg:</strong></div>
<pre>&lt;!--[if lte IE 7]&gt;
&lt;style type="text/css"&gt;
&nbsp;&nbsp;&nbsp; @import "test.css";
&lt;/style&gt;
&lt;![endif]--&gt;
</pre><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="http://jiachen.blogbus.com/logs/21432207.html">IE6中双margin宽度的解决</a> 2008-05-23</div><div><a href="/logs/33723411.html">双飞翼布局[转]</a> 2009-01-12</div><div><a href="/logs/29596111.html">Canvas使用教程——图形绘制</a> 2008-09-25</div><div><a href="/logs/29569584.html">Canvas使用教程——基本语法</a> 2008-09-24</div><div><a href="/logs/29567413.html">Canvas使用教程——开题</a> 2008-09-24</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fjiachen.blogbus.com%2Flogs%2F38674318.html&title=IE%E6%9D%A1%E4%BB%B6%E6%B3%A8%E9%87%8A">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://jiachen.blogbus.com/logs/38674318.html</link>
   <author></author>
   <pubDate>Wed, 29 Apr 2009 17:10:04 +0800</pubDate>
  </item>
  <item>
   <title>如何判断脚本加载完成【转】</title>
   <description><![CDATA[<p>原文地址：http://www.planabc.net/2008/10/31/javascript_ready_onload/</p>
<p>在&ldquo;按需加载&rdquo;的需求中，我们经常会判断当脚本加载完成时，返回一个回调函数，那如何去判断脚本的加载完成呢？</p>
<p>我们可以对加载的 JS 对象使用 onload 来判断（js.onload），此方法 
Firefox2、Firefox3、Safari3.1+、Opera9.6+ 浏览器都能很好的支持，但 IE6、IE7 却不支持。曲线救国 &mdash;&mdash; IE6、IE7 
我们可以使用 js.onreadystatechange 来跟踪每个状态变化的情况（一般为 loading 
、loaded、interactive、complete），当返回状态为 loaded 或 complete 时，则表示加载完成，返回回调函数。</p>
<p>对于 readyState 状态需要一个补充说明：</p>
<ol>
<li>在 interactive 状态下，用户可以参与互动。 
</li>
<li>Opera 其实也支持 js.onreadystatechange，但他的状态和 IE 的有很大差别。 </li>
</ol>
<p>具体实现代码如下：</p>
<pre>function include_js(file) {
    var _doc = document.getElementsByTagName('head')[0];    
    var js = document.createElement('script');    
    js.setAttribute('type', 'text/javascript');    
    js.setAttribute('src', file);    
    _doc.appendChild(js);    
    
    if (!/*@cc_on!@*/0) { //if not IE        
        //Firefox2、Firefox3、Safari3.1+、Opera9.6+ support js.onload
        js.onload = function () {            
            alert('Firefox2、Firefox3、Safari3.1+、Opera9.6+ support js.onload');       
        }    
    } 
    else {        
        //IE6、IE7 support js.onreadystatechange        
        js.onreadystatechange = function () {            
            if (js.readyState == 'loaded' || js.readyState == 'complete') {                
                alert('IE6、IE7 support js.onreadystatechange'); 
            }        
        }    
    }    
    return false;
}
        
//execution function
include_js('http://www.planabc.net/wp-includes/js/jquery/jquery.js');
</pre><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="http://jiachen.blogbus.com/logs/47262973.html">判断iframe是否加载完的完美方法</a> 2009-09-28</div><div><a href="http://jiachen.blogbus.com/logs/34148035.html">用JS获取图片尺寸</a> 2009-01-20</div><div><a href="http://jiachen.blogbus.com/logs/33707113.html">08年 ，JavaScript总结[转]</a> 2009-01-12</div><div><a href="http://jiachen.blogbus.com/logs/32827552.html">Canvas使用教程——图片应用</a> 2008-12-22</div><div><a href="http://jiachen.blogbus.com/logs/29596111.html">Canvas使用教程——图形绘制</a> 2008-09-25</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fjiachen.blogbus.com%2Flogs%2F34153291.html&title=%E5%A6%82%E4%BD%95%E5%88%A4%E6%96%AD%E8%84%9A%E6%9C%AC%E5%8A%A0%E8%BD%BD%E5%AE%8C%E6%88%90%E3%80%90%E8%BD%AC%E3%80%91">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://jiachen.blogbus.com/logs/34153291.html</link>
   <author></author>
   <pubDate>Tue, 20 Jan 2009 17:18:58 +0800</pubDate>
  </item>
  <item>
   <title>用JS获取图片尺寸</title>
   <description><![CDATA[<p>以前我还真不知道image对象可以这样用的，唉～～out了！</p>
<p>JS代码如下：</p>
<pre>function getFileSize(filePath){     
    var image=new Image();     
    image.dynsrc=filePath;     
    alert(image.fileSize);     
}</pre>
<p>调试：</p>
<pre>&lt;input name="file" size="30" type="file" onchange="getFileSize(this.value)" /&gt;</pre><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="http://jiachen.blogbus.com/logs/47262973.html">判断iframe是否加载完的完美方法</a> 2009-09-28</div><div><a href="http://jiachen.blogbus.com/logs/34153291.html">如何判断脚本加载完成【转】</a> 2009-01-20</div><div><a href="http://jiachen.blogbus.com/logs/33707113.html">08年 ，JavaScript总结[转]</a> 2009-01-12</div><div><a href="http://jiachen.blogbus.com/logs/32827552.html">Canvas使用教程——图片应用</a> 2008-12-22</div><div><a href="http://jiachen.blogbus.com/logs/29596111.html">Canvas使用教程——图形绘制</a> 2008-09-25</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fjiachen.blogbus.com%2Flogs%2F34148035.html&title=%E7%94%A8JS%E8%8E%B7%E5%8F%96%E5%9B%BE%E7%89%87%E5%B0%BA%E5%AF%B8">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://jiachen.blogbus.com/logs/34148035.html</link>
   <author></author>
   <pubDate>Tue, 20 Jan 2009 14:58:23 +0800</pubDate>
  </item>
  <item>
   <title>双飞翼布局[转]</title>
   <description><![CDATA[<p>原文：http://lifesinger.org/blog/?p=659</p><p><strong>尝试之路</strong></p><p>考虑以下DOM结构：</p><pre>&lt;div id=&quot;page&quot;&gt;<br />    &lt;div id=&quot;hd&quot;&gt;&lt;/div&gt;<br />    &lt;div id=&quot;bd&quot;&gt;<br />        &lt;div class=&quot;main&quot;&gt;&lt;/div&gt;<br />        &lt;div class=&quot;sub&quot;&gt;&lt;/div&gt;<br />        &lt;div class=&quot;extra&quot;&gt;&lt;/div&gt;<br />    &lt;/div&gt;<br />   &lt;div id=&quot;ft&quot;&gt;&lt;/div&gt;<br />&lt;/div&gt;<br /></pre>
<p>利用浮动元素的负边距来定位：</p><pre>    .main {<br />        float: left;<br />        width: 100%;<br />    }<br />    .sub {<br />        float: left;<br />        width: 190px;<br />        margin-left: -100%;<br />    }<br />    .extra {<br />        float: left;<br />        width: 190px;<br />        margin-left: -190px;<br />    }<br /></pre>
<p>这样我们得到了第一个尝试页面<a href="http://lifesinger.org/lab/pe_layout_example1.html"> 
pe_layout_example1.html</a>.<br />可以看出，通过简单的负边距，已经让<code>sub</code>和<code>extra</code>定位到正确的位置。剩下的问题是如何让<code>main</code>也定位到正确的位置。</p>
<p>一个自然的想法是，给<code>main</code>的容器<code>#bd</code>添加<code>padding</code>:</p><pre>    #bd {<br />        padding: 0 230px 0 190px;<br />    }<br /></pre>
<p>效果请看：<a href="http://lifesinger.org/lab/pe_layout_example2.html"> 
pe_layout_example2.html</a>.<br />这样能让<code>main</code>定位到正确的位置，但<code>sub</code>和<code>extra</code>的位置不对了。这是一个思考的关卡。既然<code>sub</code>和<code>extra</code>的位置不对，那就想办法调整到正确的位置。相对定位隆重登场：</p><pre>    .sub {<br />        float: left;<br />        width: 190px;<br />        margin-left: -100%;<br />        <strong>position: relative;<br />        left: -190px;</strong><br />    }<br />    .extra {<br />        float: left;<br />        width: 230px;<br />        margin-left: -230px;<br />        <strong>position: relative;<br />        right: -230px;</strong><br />    }<br /></pre>
<p>demo页面：<a href="http://lifesinger.org/lab/pe_layout_example3.html"> 
pe_layout_example3.html</a>. 很明显，这就是圣杯布局！</p>
<p>组合这三种基本技术，我们可以继续尝试各种想法。比如伪绝对定位布局（这个布局不难想到，难的是第一个想到），类似的还有逆伪绝对定位布局（先都移动到最左边，然后再<code>margin-right</code>一个个移过来）等等。</p>
<p>在不增加任何额外标签的假设上，我尝试了各种想法，但始终都没找到完美的布局实现（圣杯布局是我觉得所有想法中最接近完美的）。</p>
<p>既然不添加额外标签时，完美布局的实现如此困难，那如果允许添加一个额外标签呢？在<a href="http://docs.google.com/Present?docid=dgr8f7vc_224dc2k8hc7">淘宝UED内部的探讨</a>中，给<code>main</code>增加了一层包裹：</p><pre>&lt;div id=&quot;main&quot; class=&quot;column&quot;&gt;<br />      &lt;div id=&quot;main-content&quot;&gt;#main&lt;/div&gt;<br />&lt;/div&gt;<br /></pre>
<p>里层<code>main-content</code>的作用就是将<code>main</code>定位到合适的位置，并方便设置<code>padding</code>等属性。想到此处，就像牛顿被苹果砸傻了一样，原来的<code>main</code>定位问题迎刃而解：</p><pre>&lt;div id=&quot;page&quot;&gt;<br />    &lt;div id=&quot;hd&quot;&gt;&lt;/div&gt;<br />    &lt;div id=&quot;bd&quot;&gt;<br />        &lt;div class=&quot;main&quot;&gt;<br />            <strong>&lt;div class=&quot;main-wrap&quot;&gt;&lt;/div&gt;</strong><br />        &lt;/div&gt;<br />        &lt;div class=&quot;sub&quot;&gt;&lt;/div&gt;<br />        &lt;div class=&quot;extra&quot;&gt;&lt;/div&gt;<br />    &lt;/div&gt;<br />   &lt;div id=&quot;ft&quot;&gt;&lt;/div&gt;<br />&lt;/div&gt;<br /></pre>
<p>CSS仅需增加一行：</p><pre>.main-wrap {<br />    margin: 0 230px 0 190px;<br />}<br /></pre>
<p>demo页面：<a href="http://lifesinger.org/lab/pe_layout_example4.html"> 
pe_layout_example4.html</a>. </p>
<p>一切如此简单！除了添加了一个额外标签，其它各方面，表现都很完美（试了下IE5.5, 
也没任何问题）。目前只用到了浮动和负边距，如果再引入相对定位，还可以实现三栏布局的各种组合：</p><pre>    .extra {<br />        float: left;<br />        width: 230px;<br />        margin-left: -100%;<br />        <strong>position: relative;<br />        left: 190px;</strong><br />    }<br />    .main-wrap {<br />        <strong>margin-left: 430px;</strong><br />    }<br /></pre>
<p>demo页面：<a href="http://lifesinger.org/lab/pe_layout_example5.html"> 
pe_layout_example5.html</a>. </p>
<p>仔细查看<code>example5</code>和<code>example4</code>的源代码，可以发现DOM结构是完全一样的，仅仅CSS稍有不同。这意味着HTML结构和CSS布局在一定程度上解耦了，我们开发HTML代码时，从内容出发即可，无需过多的考虑布局。这正是渐进增强在前端工作流程上的体现。</p>
<p>如果把三栏布局比作一只大鸟，可以把<code>main</code>看成是鸟的身体，<code>sub</code>和<code>extra</code>则是鸟的翅膀。这个布局的实现思路是，先把最重要的身体部分放好，然后再将翅膀移动到适当的地方。因此请容许我给这个布局实现取名为<strong>双飞翼布局（Flying 
Swing Layout）</strong>.</p>
<p><img class="alignnone size-full wp-image-684" src="http://lifesinger.org/blog/wp-content/uploads/2008/11/bird-flying-sketch-copy-thumb.jpg" alt="" title="bird-flying-sketch-copy-thumb" width="300" height="316" /></p>
<p>就如上图中的鸟有各种姿势一样，利用双飞翼布局，我们也可以实现各种布局。这里有个尝试页面，利用双飞翼，实现了一套<a href="http://lifesinger.org/lab/grids_test1.html">栅格化布局系统</a>。</p>
<h3>优点</h3>
<ol><li>实现了内容与布局的分离，即Eric提到的Any-Order Columns. 
</li><li><code>main</code>部分是自适应宽度的，很容易在定宽布局和流体布局中切换。 
</li><li>任何一栏都可以是最高栏，不会出问题。 
</li><li>需要的hack非常少（就一个针对ie6的清除浮动hack:<code>_zoom: 1;</code>） 
</li><li>在浏览器上的兼容性非常好，IE5.5以上都支持。 </li></ol>
<h3>不足</h3>
<ol><li><code>main</code>需要添加一个额外的包裹层。 
</li><li>等待你的发现与反馈。 </li></ol>
<h3>补充</h3>
<p>双飞翼布局的想法与实现受了<a href="http://www.alistapart.com/articles/holygrail">圣杯布局</a>和<a href="http://docs.google.com/Present?docid=dgr8f7vc_224dc2k8hc7">UED内部讨论的PPT</a>的启发。尝试后发现一切如此简单，都有点奇怪为什么网络上一直没有文章来阐述。</p>
<p>前些日子主要精力都放在了阅读<a href="http://www.alistapart.com/">ALA</a>上的文章，没怎么注意其它信息。昨天才仔细阅读Eric的<a href="http://meyerweb.com/eric/thoughts/2005/11/09/multi-unit-any-order-columns/">Any-Order 
Columns</a>和Alex的<a href="http://www.positioniseverything.net/articles/onetruelayout/">One True 
Layout</a>, 发现这种思路和想法早就有人尝试过了。比如Eric原文中的例子是定宽的，但稍微修改，就可以演化为双飞翼布局。Alex的One True 
Layout, 给的例子被墙了，就一直没细看，今天才找代理过去瞄了一眼，一瞄不要紧，原来One True 
Layout就是双飞翼，不过Alex只用到了浮动和负边距，因此没有提及<code>main - sub - extra</code>这种排列的实现。</p>
<p>此外，中午还有一个非常震惊的发现：Alessandro早做了一个很详细的页面<a href="http://blog.html.it/layoutgala/">Layout Gala</a>, 列举了40种布局，用的就是双飞翼！</p>
<p>巧合让人有点沮丧，但更让我高兴。因为Alex和Alessandro的工作，证明了这种布局的普适性。因此不用像采用伪绝对定位布局时一样，得担心新技术带来的风险！可以说，双飞翼布局已经是一个成熟的布局，但因为Alex的被墙，以及Alessandro的宣传力度不够，导致这个布局被我重新&ldquo;发现&rdquo;了一次。特撰此文，并取名为&ldquo;双飞翼布局&rdquo;，希望这个布局能让更多的人知道，并应用于实践中。</p><p>&nbsp;</p><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="http://jiachen.blogbus.com/logs/21432207.html">IE6中双margin宽度的解决</a> 2008-05-23</div><div><a href="http://jiachen.blogbus.com/logs/14902125.html">大巴的模板定制功能还是不错DI</a> 2008-02-03</div><div><a href="http://jiachen.blogbus.com/logs/49315195.html">利用CSS来preload图片或者改善用户体验</a> 2009-10-28</div><div><a href="http://jiachen.blogbus.com/logs/48191296.html">资料:CSS的私有属性声明</a> 2009-10-12</div><div><a href="http://jiachen.blogbus.com/logs/15417528.html">Effect.BlindUp</a> 2008-02-15</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fjiachen.blogbus.com%2Flogs%2F33723411.html&title=%E5%8F%8C%E9%A3%9E%E7%BF%BC%E5%B8%83%E5%B1%80%5B%E8%BD%AC%5D">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://jiachen.blogbus.com/logs/33723411.html</link>
   <author></author>
   <pubDate>Mon, 12 Jan 2009 15:52:04 +0800</pubDate>
  </item>
  <item>
   <title>08年 ，JavaScript总结[转]</title>
   <description><![CDATA[<p>原文：http://blog.csdn.net/KimSoft/archive/2009/01/08/3733628.aspx</p><p>Jacob Seidelin 
在他的博客中写道：<br /><br />&ldquo;2008年真是太棒了，不仅仅是因为很多厉害的人物在使用JavaScript和新的canvans元素，浏览器厂商也在竞争，试图超越对方在JavaScript方面的表现，这都证明了JavaScript的重要性。以下是我的总结：<br /><br /><strong>Games</strong><br /><br />对于JavaScript游戏来说这一年很伟大。使用DHTML和基于Canvas的游戏似乎有能力来接管Flash的一些领域。许多经典的游戏都被重新的设计：<a href="http://jsmario.com.ar/" target="_blank"><u><font color="#006699">Super Mario 
</font></u></a>, <a href="http://www.harryguillermo.com/" target="_blank"><u><font color="#006699">Pac-Man</font></u></a> （<a href="http://www.javaeye.com/news/3470-yui-pacman-cool-game-yui-javascript-library"><u><font color="#006699">YUI pacman：很酷的YUI JavaScript库游戏</font></u></a>）, <a href="http://billmill.org/static/canvastutorial/" target="_blank"><u><font color="#006699">Breakout</font></u></a> , <a href="http://matthaynes.net/blog/2008/08/03/javascript-space-invaders/" target="_blank"><u><font color="#006699">Space Invaders</font></u></a> , <a href="http://www.e-forum.ro:8080/dynagame/index" target="_blank"><u><font color="#006699">Bomberman </font></u></a>和 <a href="http://jonraasch.com/blog/jquery-video-game-remake-tc-surf-designs" target="_blank"><u><font color="#006699">T&amp;C Surf Designs </font></u></a>。</p>
<p>&nbsp;</p>
<div style="text-align: center"><img src="http://2.bp.blogspot.com/_OjchJpvqFiw/SV5-93IC2eI/AAAAAAAAAXM/xiFFcsW-5zQ/s200/invaders_screenshot.png" alt="" /></div>
<p><br /><br />还有很多在经典的旧游戏上加入了他们的新思想：Matt Hackett创作的 <a href="http://scriptnode.com/lab/spacius/" target="_blank"><u><font color="#006699">Spacius</font></u></a> , Mark Wilcox 创作的 <a href="http://www.rebelideas.co.uk/proto/test/" target="_blank"><u><font color="#006699">Invaders from Mars</font></u></a> , VertigoProject创作的 <a href="http://www.vertigo-project.com/projects/redline-game" target="_blank"><u><font color="#006699">RedLine Racing</font></u></a> 和 <a href="http://www.reenigne.org/tet4/" target="_blank"><u><font color="#006699">Tetris 
game</font></u></a> 。</p>
<p>&nbsp;</p>
<div style="text-align: center"><img src="http://4.bp.blogspot.com/_OjchJpvqFiw/SV5_Mqv5ZHI/AAAAAAAAAYU/8mEUts5KqBw/s200/spacius.png" alt="" /></div>
<p><br /><br />我们甚至还看到了一些角色扮演的游戏：Andrew Wooldridge创造的<a href="http://www.icculus.org/asciiroth/" target="_blank"><u><font color="#006699">Tombs of Asciiroth </font></u></a>和 <a href="http://www.andrewwooldridge.com/canvas/canvasquest/canvasquest.html" target="_blank"><u><font color="#006699">CanvasQuest</font></u></a> ，Pierre 
Chassaing创造的<a href="http://www.protorpg.com/" target="_blank"><u><font color="#006699">ProtoRPG</font></u></a>。 虽然他们大多数都只是试用版或演示，但是我相信有一天他们会变的相当的酷。</p>
<p>&nbsp;</p>
<div style="text-align: center"><img src="http://3.bp.blogspot.com/_OjchJpvqFiw/SV5_HnQk0DI/AAAAAAAAAYM/EgWy7kHORQ4/s200/protorpg.png" alt="" /></div>
<p>&nbsp;</p>
<p>2008年还出现了一些有趣的JavaScript / DHTML游戏库，最突出的就是<a href="http://www.tommysmind.com/gamejs/" target="_blank"><u><font color="#006699">GameJs </font></u></a>（<a href="http://www.javaeye.com/news/3968-gamejs-cool-game-canvas-library" title="GameJS：超酷的Canvas游戏库"><u><font color="#006699">GameJS：超酷的Canvas游戏库</font></u></a>）和<a href="http://gamequery.onaluf.org/" target="_blank"><u><font color="#006699">GameQuery </font></u></a>，后者为jQuery库的扩展。</p>
<p>&nbsp;</p>
<div style="text-align: center"><img src="http://3.bp.blogspot.com/_OjchJpvqFiw/SV5-ouywLBI/AAAAAAAAAW0/Xuv75UZv9yo/s200/gamejs-jetris.png" alt="" /></div>
<p><br />最后这个很特别， <a href="http://www.p01.org/releases/DHTML_contests/files/DEFENDER_of_the_favicon/" target="_blank"><u><font color="#006699">DEFENDER of the 
favicon</font></u></a>，它将旧游戏Defender压缩到了只有16x16的空间。</p>
<p>&nbsp;</p>
<div style="text-align: center"><img src="http://4.bp.blogspot.com/_OjchJpvqFiw/SV5-nkFReBI/AAAAAAAAAWs/RSuRftyixmc/s200/defender-of-the-favicon.png" alt="" /><br /></div>
<p><br /><br /><strong>Demos</strong><br /><br />越来越多的浏览器开始支持canvas元素，也就是说，在绘制动态图形方面我们又多了一种选择。有人制作出了一个<a href="http://a1k0n.net/code/flag.html" target="_blank"><u><font color="#006699">小型简单的演示</font></u></a> ，用于展示Canavs的能力，但是有些人在这个基础上又向前迈了一步，就像 Matt 
Westcott制作的<a href="http://antisocial.demozoo.org/" target="_blank"><u><font color="#006699">Antisocial demo </font></u></a>。</p>
<p>&nbsp;</p>
<div style="text-align: center"><img src="http://3.bp.blogspot.com/_OjchJpvqFiw/SV5-hzQzHsI/AAAAAAAAAWU/pg4evuP2XyI/s200/antisocial.png" alt="" /></div>
<p><br /><br />今年的大忙人Mathieu 'p01' Henri制作了很多小应用，使用一行代码就能做相当酷的事：<a href="http://www.p01.org/releases/Demoscene/files/rubber_256b_javascript.htm" target="_blank"><u><font color="#006699">Rubber effect</font></u></a> ，<a href="http://www.p01.org/releases/Demoscene/files/tunnex_256b_javascript.htm" target="_blank"><u><font color="#006699">Tunnex </font></u></a>，<a href="http://www.p01.org/releases/Demoscene/files/mars_canvas_256b.htm" target="_blank"><u><font color="#006699">Mars </font></u></a>，他们都在256个字节以内！</p>
<p>&nbsp;</p>
<div style="text-align: center"><img src="http://4.bp.blogspot.com/_OjchJpvqFiw/SV5_DUX66jI/AAAAAAAAAX0/yXpr_LTxYUA/s200/mars.png" alt="" /></div>
<p><br /><br /><a href="http://www.ozoneasylum.com/" target="_blank"><u><font color="#006699">Mathieu Henri</font></u></a> 利用canvas元素，在20 lines 比赛 中创造出了惊人的效果： 
<a href="http://www.p01.org/releases/DHTML_contests/files/20lines_dynamic_hypnoglow/" target="_blank"><u><font color="#006699">Dynamic Hypnoglow</font></u></a> ，<a href="http://www.p01.org/releases/DHTML_contests/files/20lines_twinkle/" target="_blank"><u><font color="#006699">Twinkle</font></u></a> 和 <a href="http://www.p01.org/releases/DHTML_contests/files/20lines_hypno_trip_down_the_fractal_rug/" target="_blank"><u><font color="#006699">Hypno Trip Down the Fractal Rug 
</font></u></a>。这次比赛的优秀作品还有：<a href="http://www.kaarellumi.com/asylum/html/dyn4.htm" target="_blank"><u><font color="#006699">colliding balls </font></u></a>，<a href="http://www.kaarellumi.com/asylum/html/dyn10.htm" target="_blank"><u><font color="#006699">3D cube effect </font></u></a>和 <a href="http://www.kaarellumi.com/asylum/html/dyn8.htm" target="_blank"><u><font color="#006699">dynamically generated BMP flames </font></u></a>。</p>
<p>&nbsp;</p>
<div style="text-align: center"><img src="http://4.bp.blogspot.com/_OjchJpvqFiw/SV5-rl6lgMI/AAAAAAAAAXE/XVIszKUMwqU/s200/hypno-trip.png" alt="" /></div>
<p><br /><br />Asylum inmates在20-line games的比赛中创建了：<a href="http://weibell.de/javascript/20lines/lunar-lander/" target="_blank"><u><font color="#006699">Lunar Lander </font></u></a>，<a href="http://magnetiq.com/bd20/" target="_blank"><u><font color="#006699">a Boulderdash clone</font></u></a> ，<a href="http://www.p01.org/releases/DHTML_contests/files/20lines_castle_wolfenstein/" target="_blank"><u><font color="#006699">Wolfenstein 3D</font></u></a> 。</p>
<p>&nbsp;</p>
<div style="text-align: center"><img src="http://1.bp.blogspot.com/_OjchJpvqFiw/SV5-jIdkGZI/AAAAAAAAAWc/Im5GqiZM4R0/s200/boulderdash.png" alt="" /></div>
<p><br /><br /><br /><strong>3D</strong></p>
<p>canvas元素只支持2D图像，但是这并不代表他不能制作出3D的效果：<a href="http://www.pascarello.com/canvas/KeyBoard3DCube.html" target="_blank"><u><font color="#006699">basic 3D cubes</font></u></a> , <a href="http://acko.net/blog/projective-texturing-with-canvas" target="_blank"><u><font color="#006699">texturing experiments</font></u></a> ， <a href="http://lbi.lostboys.nl/blog/artikelen/canvas-in-full-3d/" target="_blank"><u><font color="#006699">JavaScript/Canvas 3D 
engines</font></u></a>（<a href="http://www.javaeye.com/news/4230-3d-canvas-demo" title="很酷的 3D Canvas 演示"><u><font color="#006699">很酷的 3D Canvas 演示</font></u></a>）。还有许多3D的东西在<a href="http://blog.nihilogic.dk/search/label/3d" target="_blank"><u><font color="#006699">Nihilogic</font></u></a>上。</p>
<p>&nbsp;</p>
<div style="text-align: center"><img src="http://3.bp.blogspot.com/_OjchJpvqFiw/SV5_GHCWGJI/AAAAAAAAAYE/Vb0cpZMQakE/s200/projective-transform.png" alt="" /></div>
<p><br /><br /><br /><strong>Emulation</strong><br /><br />Matt Westcott创造的<a href="http://matt.west.co.tt/spectrum/jsspeccy/" target="_blank"><u><font color="#006699">JSSpeccy the ZX Spectrum emulator</font></u></a> 。<br />James 
Urquhart 创造的<a href="http://www.cuppadev.co.uk/oldbrew/scumm-in-javascript/" target="_blank"><u><font color="#006699">SCUMM interpreter </font></u></a>。</p>
<p>&nbsp;</p>
<div style="text-align: center"><img src="http://3.bp.blogspot.com/_OjchJpvqFiw/SV5_CCOSTvI/AAAAAAAAAXs/VbW3WLmHJNQ/s200/jsspeccy.png" alt="" /></div>
<p><br /><br />我个人最喜欢的是<a href="http://blog.nihilogic.dk/2008/06/sierra-agi-interpreter-in-javascript.html" target="_blank"><u><font color="#006699">JavaScript AGI 
interpreter</font></u></a>。</p>
<p>&nbsp;</p>
<div style="text-align: center"><img src="http://2.bp.blogspot.com/_OjchJpvqFiw/SV5--0xibpI/AAAAAAAAAXU/1mAZrbuRLfk/s200/javascript-agi-interpreter.png" alt="" /></div>
<p><br /><br /><br /><strong>Graphics</strong><br /><br />最令人印象深刻的是John 
Resig将Processing语言加入JavaScript-<a href="http://dev.jquery.com/%7Ejohn/processing.js/" target="_blank"><u><font color="#006699">Processing.js</font></u></a>&nbsp; ，Aza Raskin创建了<a href="http://azarask.in/projects/algorithm-ink/" target="_blank"><u><font color="#006699">Algorithm Ink</font></u></a>。Eitan 
Suez将Turtle，字符串图像变成工具转换成JavaScript版，<a href="http://u2d.com/turtle_js/index.html" target="_blank"><u><font color="#006699">TurtleJS</font></u></a> 。</p>
<p>&nbsp;</p>
<div style="text-align: center"><img src="http://2.bp.blogspot.com/_OjchJpvqFiw/SV5_E5uC9-I/AAAAAAAAAX8/tY-yr--hO-A/s200/processing.png" alt="" /></div>
<p><br /><br /><br /><strong>Audio</strong></p>
<p>Cameron Adams 创建了一个有趣的JavaScript实例：<a href="http://www.themaninblue.com/writing/perspective/2008/11/17/" target="_blank"><u><font color="#006699">JS-909</font></u></a> （<a href="http://www.javaeye.com/news/4220-js-909-an-interesting-use-of-flash-drum-machines" title="JS-909：一个不使用Flash的有趣打鼓机器"><u><font color="#006699">JS-909：一个不使用Flash的有趣打鼓机器</font></u></a>），这是一个打鼓机器，能够演奏声音而不使用Flash，也不使用任何库，声音由标签引入。<br />sk89q 
创造的<a href="http://sk89q.therisenrealm.com/2008/11/dynamically-generating-a-wav-in-javascript/" target="_blank"><u><font color="#006699">sine waveform generator 
</font></u></a>，动态生成和播放WAV文件。</p>
<p>&nbsp;</p>
<div style="text-align: center"><img src="http://4.bp.blogspot.com/_OjchJpvqFiw/SV5_A4f4-cI/AAAAAAAAAXc/_N7gJrgl1T0/s200/javascript-drum-machine.png" alt="" /><br /></div>
<p><br /><strong>其他</strong><br /><br />你能使用CSS做些什么了？是不是只是为了您的文字样式？显然不是，Rom&aacute;n 
Cort&eacute;s证明了这一点，他创造一个 <a href="http://www.romancortes.com/blog/homer-css/" target="_blank"><u><font color="#006699">Simpson的形象 
</font></u></a>，但这需要你拥有足够的CSS技巧。另外，Ernest Delgado 提供了一个<a href="http://ernestdelgado.com/public-tests/canvas-gpsmap/" target="_blank"><u><font color="#006699">汽车导航</font></u></a>的演示 （<a href="http://www.javaeye.com/news/4293-canvas-navigation-drive" target="_blank"><u><font color="#006699">canvas：驾驶导航</font></u></a>）。</p>
<p>&nbsp;</p>
<div style="text-align: center"><img src="http://2.bp.blogspot.com/_OjchJpvqFiw/SV5-p7OeOII/AAAAAAAAAW8/JJtHf_m2nEs/s200/homer-css.png" alt="" /></div>
<p><br /><br />最后一个类似于我们小时候玩的积木，<a href="http://www.themaninblue.com/experiment/Cubescape/new.php" target="_blank"><u><font color="#006699">Cubescape</font></u></a> ，可选择不同的颜色。</p>
<p>&nbsp;</p>
<div style="text-align: center"><img src="http://1.bp.blogspot.com/_OjchJpvqFiw/SV5-mtVOWrI/AAAAAAAAAWk/YRNl1gbaQ-k/s200/cubescape.png" alt="" /></div>
<p><br /><br />我在此许愿，希望2009年的javaScript能更酷！&rdquo;</p><p>&nbsp;</p><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="http://jiachen.blogbus.com/logs/32827552.html">Canvas使用教程——图片应用</a> 2008-12-22</div><div><a href="http://jiachen.blogbus.com/logs/29596111.html">Canvas使用教程——图形绘制</a> 2008-09-25</div><div><a href="http://jiachen.blogbus.com/logs/29569584.html">Canvas使用教程——基本语法</a> 2008-09-24</div><div><a href="http://jiachen.blogbus.com/logs/29567413.html">Canvas使用教程——开题</a> 2008-09-24</div><div><a href="http://jiachen.blogbus.com/logs/47262973.html">判断iframe是否加载完的完美方法</a> 2009-09-28</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fjiachen.blogbus.com%2Flogs%2F33707113.html&title=08%E5%B9%B4+%EF%BC%8CJavaScript%E6%80%BB%E7%BB%93%5B%E8%BD%AC%5D">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://jiachen.blogbus.com/logs/33707113.html</link>
   <author></author>
   <pubDate>Mon, 12 Jan 2009 11:49:04 +0800</pubDate>
  </item>
 </channel>
</rss>
