<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[蜗爱CSS]]></title>
<link>http://www.woaicss.com/</link>
<description><![CDATA[css初学者 前端技术]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[wo-ai-niqq@163.com(蜗牛)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>蜗爱CSS</title>
	<url>http://www.woaicss.com/images/logos.gif</url>
	<link>http://www.woaicss.com/</link>
	<description>蜗爱CSS</description>
</image>

			<item>
			<link>http://www.woaicss.com/article/js/2012031901.htm</link>
			<title><![CDATA[js练习28—json跨域数据访问]]></title>
			<author>wo-ai-niqq@163.com(woniu)</author>
			<category><![CDATA[Js/jQuery]]></category>
			<pubDate>Mon,19 Mar 2012 22:07:31 +0800</pubDate>
			<guid>http://www.woaicss.com/default.asp?id=300</guid>
		<description><![CDATA[JSONP即JSON with Padding。如果要进行跨域请求，我们可以通过使用html的script标记来进行跨域请求，并在响应中返回要执行的script代码，其中可以直接使用JSON传递javascript对象。<br/><a target="_blank" href="http://www.woaicss.com/works/Demo/2012.03/jsonp.html" rel="external">[demo]</a><br/><strong>demo 客户端代码：</strong><br/><textarea name="code" class="JScript">
<body>
	<script type=&#34;text/javascript&#34;>
       	var oScript = document.cr&#101;ateElement('script'); 
    	oScript.type='text/javascript';
    	oScript.src = 'jsonp.js';
		document.getElementsByTagName('head')[0].appendChild(oScript);
		function jsonCallBack(json){
			
			alert(json[1].name);
		
		}
    </script>
</body>
</textarea><br/>其中 jsonCallback 是客户端注册的，获取跨域服务器上的json数据后，回调的函数。<br/>src这个 url 是跨域服务器取 json 数据的接口，参数为回调函数的名字，返回的格式为<br/><textarea name="code" class="JScript">
jsonCallBack([{'name':'woniu','password':'1111'}{'name':'woaicss','password':'123444'}]);
</textarea><br/><strong>Jsonp原理：</strong><br/>首先在客户端注册一个callback, 然后把callback的名字传给服务器。<br/> <br/>此时，服务器先生成 json 数据。 <br/>然后以 javascript 语法的方式，生成一个function , function 名字就是传递上来的参数 jsonp.<br/> <br/>最后将 json 数据直接以入参的方式，放置到 function 中，这样就生成了一段 js 语法的文档，返回给客户端。<br/> <br/>客户端浏览器，解析script标签，并执行返回的 javascript 文档，此时数据作为参数，传入到了客户端预先定义好的 callback 函数里.（动态执行回调函数）<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.woaicss.com/article/js/2012031801.htm</link>
			<title><![CDATA[js练习27—城市选择]]></title>
			<author>wo-ai-niqq@163.com(woniu)</author>
			<category><![CDATA[Js/jQuery]]></category>
			<pubDate>Sun,18 Mar 2012 20:03:06 +0800</pubDate>
			<guid>http://www.woaicss.com/default.asp?id=299</guid>
		<description><![CDATA[&nbsp;&nbsp; 过年回来后就没更新博客，该继续练习系列了。今天的demo，之前去一家公司的笔试题，这个是地区选择，联动下拉菜单和这个一个原理<br/><br/><a target="_blank" href="http://www.woaicss.com/works/Demo/2012.03/城市选择.html" rel="external">[demo]</a><br/><br/>&nbsp;&nbsp; 申请友链的同学，有的站打不开，有的跟前端毫无关联，所以抱歉]]></description>
		</item>
		
			<item>
			<link>http://www.woaicss.com/article/works/2012031001.htm</link>
			<title><![CDATA[[转]从细节做起：设计师们，请善待PSD]]></title>
			<author>wo-ai-niqq@163.com(woniu)</author>
			<category><![CDATA[杂七杂八]]></category>
			<pubDate>Mon,12 Mar 2012 11:35:04 +0800</pubDate>
			<guid>http://www.woaicss.com/default.asp?id=298</guid>
		<description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;作为设计师，应该将设计稿的最完美一面表现给其他人看。就像jobs 说的一样，好设计师，不会使用烂木头作为衣柜的背板。虽然你最终的设计稿很完美，但是你的psd让人觉得很糟糕，同样会让之后的切图仔觉得你不是个优秀的设计师，对不起死去的jobs哇～ XD<br/><br/>　　在企鹅村玩代码玩了半年多，玩起psd来都有点生疏了。 yixieshi<br/><br/>　　最近对设计MM 给的psd文件产生了点暧昧。有感悟抒发一下。看看是不是都有一样的困惑和同样的问题。<br/><br/><strong>如果切图仔死了，死因很可能是一份可怕的psd</strong><br/><br/>　　1. psd 文件尺寸 竟然有71M，(也许看着觉得还好，但是一开ps 就杯具了，内存不够 = =)<br/><br/>　　2. psd 图层上百个，各种看不懂的图层。毫无规律的图层分组让人菊花一紧。<br/><br/>　　3. 设计稿完全是个插画，怎么看都不像个网页，无从下手切图。(恨不得把psd 吃下去 &gt;.&lt;)<br/><br/>　　4. GUI为矢量图，边界不清晰。(切图成果，糊得一比)。<br/><br/>　　作为切图仔，暂时就列了这么些 碰到的问题。相信有和多人有同感。<br/><br/>　　那么作为设计师MM的你们又应该如何去避免呢? 对症下药 一一破解。<br/><br/><strong>合理分层，结构清晰 互联网的一些事</strong><br/><br/>　　不管你做的是设计，还是插画。结构设计也是一种设计，当你合理并且清晰的规划好你的设计稿，那么这个设计就有十之八九了。<br/><br/><strong>那么如何对网页设计稿进行分组分层呢?</strong> <br/><br/>　　1. 按框架分。(网页分 ，头部head ， 主题 main，底部 foot，以此类推)。<br/><br/>　　2. 按模块分。(每个小原件，小装饰，合成一个大物件就能做为一个模块)<br/><br/>　　3. 按属性分。(这点比较重要，设计师如果做的是web界面，需要了解什么是“图片输出” 和 “代码输出”, 原因是当切图的时候，我们需要将 “代码输出”类型所属的图层隐藏掉，然后再进行导出)。还有一些注释(注释好重要，后面有讲)相关的东西。<br/><br/>　　4. 按状态分，(web设计跟插画设计 一个很大的区别就是 web设计是有交互的，需要针对各个交互状态进行分层分组) 互联网的一些事<br/><br/>　　“代码输出” 指的是设计稿中的一些效果是可以使用代码来实现的，如后期可编辑的文字(大段文字，小按钮里的宋体文字)，圆角，渐变效果(高级浏览器可实现)。<br/><br/>　　“图片输出” 则是指出了代码输出以外的东西，如图标icon，背景效果，以及一些 使用代码不可实现的文字效果(如艺术字体)。<br/><br/><img src="http://www.woaicss.com/attachments/month_1203/s2012312113257.png" border="0" alt=""/><br/><br/><strong>减少尺寸，去其痔疮是关键</strong><br/><br/>　　如果你做的是大喷绘 psd 有个7,80M 可以理解。但是你做的是web设计稿也那么大，就有点不可理喻啦。<br/><br/>　　毕竟切图仔的电脑总是没有设计师的强大哇，并且我们还要跑个IDE编辑器，跑个虚拟机，再跑N个浏览器。这个时候要是还要打开一个70M的PSD设计稿(预计占用内存1G)，这个时候 谁蛋疼谁知道哇 囧rz 互联网的一些事<br/><br/>　　所以对切图仔好点，把psd弄小点。如何弄小点，往下看。(毕竟俺是过来人 ^__^). yixieshi<br/><br/>　　1.去除没用的大尺寸素材图层，(当设计稿需要交接给切图仔的时候，最好复制一份设计稿，去除psd中无用处的原始素材图)。因为素材图片是唯一难压缩的东西(psd尺寸大很多时候是因为这个)，且运行时占内存大。<br/><br/>　　2.去除无关图层，(这个是禁忌哇，如果跟设计稿不相关的最好删掉，或者新建一个temp组丢那里面，不然很容易误导切图仔，而且还占内存，别以为隐藏掉就不占内存啦 XD)。 一些事<br/><br/>　　3.慎用智能图层。(智能图层在CS4的时候就开始有了。) 很好用，因为不影响原素材的质量，如放大缩小，但是TMD 占内存，吃cpu哇 &gt;.&lt;<br/><br/>　　4.合并列表型块状设计，(这点很纠结，也很重要) web设计稿中有一些设计是列表型的。如：文章列表，信息列表。通常设计的时候是先制作一份，然后复制个十几个。 但是。。。。但是，复制太多了占内存哇。0 0，果断保留关键的一份，或者表示几种状态的几份。然后把其他的都合并图层了。 相信我，这样做切图仔会很开心。^__^<br/><br/><strong>边界清晰，不再模糊</strong><br/><br/>　　web设计中，最忌讳糊糊的感觉了。因为很多东西是需要精确到像素的。 互联网的一些事<br/><br/>　　1.形状模糊，有些时候使用形状工具因为没有对齐到像素(见配图),导致做出来的形状边缘都糊糊的。 一些事<br/><br/>　　解决办法很简单，使用选取工具(A)，小移一下形状让它对齐到像素即可，或者干脆栅格化形状擦去模糊的部分即可。<br/><br/>　　2.素材模糊，素材让人觉得糊糊得看起来不是那么专业? 简单的锐化一下，会发现很好用(我用的比较多的就是USM锐化)。 互联网的一些事<br/><br/>　　3.文字模糊，有些时候发现矢量的字体怎么调大小都觉得边缘糊糊的。果断，复制一份(备份用)，然后栅格化，小小的锐化一下。^_^<br/><br/><img src="http://www.woaicss.com/attachments/month_1203/l2012312113411.png" border="0" alt=""/><br/><br/><strong>良好的注释图层，凸现专业气质</strong><br/><br/>　　代码需要注释，设计稿也同样需要注释。同样是两份设计稿，相信你一定很喜欢带注释的设计稿。 一些事<br/><br/>　　相信我，给你的psd 新建一个组叫注释(comments)，那么切图仔的眼睛里一定闪烁着晶莹的东西。^__^]]></description>
		</item>
		
			<item>
			<link>http://www.woaicss.com/article/js/2012011101.htm</link>
			<title><![CDATA[javascript-获取数组最大元素索引]]></title>
			<author>wo-ai-niqq@163.com(woniu)</author>
			<category><![CDATA[Js/jQuery]]></category>
			<pubDate>Wed,11 Jan 2012 17:48:06 +0800</pubDate>
			<guid>http://www.woaicss.com/default.asp?id=297</guid>
		<description><![CDATA[javascript 获取数组元素最大值的索引值。<br/><textarea name="code" class="JScript">
(function(){
			var arr = new Array(1,7,0,4,3,10);
			Array.prototype.max = function() {   
			 var max = this[0]; 
			 var len = this.length;  
			 for (var i = 1; i < len; i++){
			   this.index = i;
			   if (this[i] > max) {       
			   max = this[i ]; 
			   num = this.index;
			  }  
			 }    
			 return num; 
			}
			 alert(arr.max());
		})()
</textarea>]]></description>
		</item>
		
			<item>
			<link>http://www.woaicss.com/article/js/20120104.htm</link>
			<title><![CDATA[js练习26—事件委托]]></title>
			<author>wo-ai-niqq@163.com(woniu)</author>
			<category><![CDATA[Js/jQuery]]></category>
			<pubDate>Thu,05 Jan 2012 00:09:22 +0800</pubDate>
			<guid>http://www.woaicss.com/default.asp?id=291</guid>
		<description><![CDATA[事件委托就是为了提高性能，在一个页面上使用一个事件来管理多种类型的事件。<br/><br/>例如需要下面三个li上分别绑定不同的事件：<br/><textarea name="code" class="Xml">
<ul id=&#34;box&#34;>
		<li id=&#34;c_border&#34;>蜗爱css -事件委托demo1-点我边框变红</li>
		<li id=&#34;c_height&#34;>蜗爱css -事件委托demo2-点我高度变高</li>
              <li id=&#34;c_back&#34;>蜗爱css -事件委托demo3-点我背景变色</li>
</ul>
</textarea><br/><a target="_blank" href="http://www.woaicss.com/works/Demo/2012.01/2012010501.html" rel="external">[demo]</a><br/>通常写法：<br/><textarea name="code" class="JScript">
(function(){
		 function $(id){return document.getElementById(id);}
		 $('c_border').onclick = function(){
			this.style.cssText = &#34;border:1px solid red&#34;;
			//this.style.border = &#34;1px solid red&#34;;
		 };
		  $('c_height').onclick = function(){
			this.style.height = 40 + 'px';
		 };
		  $('c_back').onclick = function(){
			this.style.cssText = &#34;background:#000;color:#fff;&#34;;
		 };
    })()
</textarea><br/>事件委托写法：<br/><textarea name="code" class="JScript">
(function(){
		 function $(id){return document.getElementById(id);}
		 oUl = $('box');
		 oUl.onclick = function(ev){
			var ev = ev || window.event; 
			var target = ev.target || ev.srcElement; 
			switch(target.id){
				case &#34;c_border&#34;:
				$('c_border').style.cssText = &#34;border:1px solid red&#34;;
				break;
				case &#34;c_height&#34;:
				$('c_height').style.height = 40 + 'px';
				break;
				case &#34;c_back&#34;:
				$('c_back').style.cssText = &#34;background:#000;color:#fff;&#34;;
				break;
			}
		}
	})()
</textarea><br/><span style="color:red">优点：</span><br/>事件委托对于web应用程序的性能有如下几个优点：<br/>1.需要管理的函数变少了<br/>2.占用的内存少了<br/>3.javascript代码和Dom结构之间的关联更少了<br/>相关：<br/><a target="_blank" href="http://younglab.blog.51cto.com/416652/274132" rel="external">JavaScript中的事件委托</a><br/><a target="_blank" href="http://www.cnblogs.com/ashun/archive/2006/11/27/event_javascri&#112;t_ie_firefox_gorush.html" rel="external">firefox 和 ie 事件处理的细节,研究,再研究-----书写同时兼容ie和ff的事件处理代码</a>]]></description>
		</item>
		
			<item>
			<link>http://www.woaicss.com/article/js/20120102mark.htm</link>
			<title><![CDATA[高效javascript—Mark地址]]></title>
			<author>wo-ai-niqq@163.com(woniu)</author>
			<category><![CDATA[Js/jQuery]]></category>
			<pubDate>Mon,02 Jan 2012 23:50:29 +0800</pubDate>
			<guid>http://www.woaicss.com/default.asp?id=290</guid>
		<description><![CDATA[Mark 个地址&nbsp;&nbsp;<a target="_blank" href="http://www.cnblogs.com/justinw/archive/2010/03/17/1688113.html" rel="external">[高效javascript]</a>]]></description>
		</item>
		
			<item>
			<link>http://www.woaicss.com/article/js/20110101.html.htm</link>
			<title><![CDATA[js练习25—通过class选择页面元素]]></title>
			<author>wo-ai-niqq@163.com(woniu)</author>
			<category><![CDATA[Js/jQuery]]></category>
			<pubDate>Sun,01 Jan 2012 11:12:09 +0800</pubDate>
			<guid>http://www.woaicss.com/default.asp?id=289</guid>
		<description><![CDATA[&nbsp;&nbsp;通过class选择页面元素，可以是多个class。函数：<br/><br/><textarea name="code" class="JScript">
function getByClass(oParent,sClass) { 
		var aTmp = [],// var aTmp = new Array();
			aEle = oParent.getElementsByTagName('*');
			var pattern = new RegExp(&#34;\\b&#34;+sClass+&#34;\\b&#34;); //正则，'\b'：匹配单词边界
		    for (var i=0; i<aEle.length; i++ ) {
		   if (pattern.test(aEle[i].className)){
				aTmp.push(aEle[i]);
			}
		   }
		   return aTmp;
	}
</textarea><br/><a target="_blank" href="http://www.woaicss.com/works/Demo/2012.01/getByclass.html" rel="external">[demo]</a>]]></description>
		</item>
		
			<item>
			<link>http://www.woaicss.com/article/js/20111224.html.htm</link>
			<title><![CDATA[js练习24—弹出隐藏层]]></title>
			<author>wo-ai-niqq@163.com(woniu)</author>
			<category><![CDATA[Js/jQuery]]></category>
			<pubDate>Sat,24 Dec 2011 16:29:57 +0800</pubDate>
			<guid>http://www.woaicss.com/default.asp?id=288</guid>
		<description><![CDATA[面向对象 小demo<br/><br/><a target="_blank" href="http://www.woaicss.com/works/Demo/2011.12/20111224.html" rel="external">[demo]</a>]]></description>
		</item>
		
			<item>
			<link>http://www.woaicss.com/article/js/2011112901.htm</link>
			<title><![CDATA[js练习23—仿flash图片轮换(二)]]></title>
			<author>wo-ai-niqq@163.com(woniu)</author>
			<category><![CDATA[Js/jQuery]]></category>
			<pubDate>Tue,29 Nov 2011 23:33:17 +0800</pubDate>
			<guid>http://www.woaicss.com/default.asp?id=285</guid>
		<description><![CDATA[<br/><a target="_blank" href="http://www.woaicss.com/works/demo/2011.11/2011112901.html" rel="external">[demo]</a>]]></description>
		</item>
		
			<item>
			<link>http://www.woaicss.com/article/js/2011112601.htm</link>
			<title><![CDATA[js练习22—仿flash图片轮换(一)]]></title>
			<author>wo-ai-niqq@163.com(woniu)</author>
			<category><![CDATA[Js/jQuery]]></category>
			<pubDate>Sat,26 Nov 2011 23:57:06 +0800</pubDate>
			<guid>http://www.woaicss.com/default.asp?id=284</guid>
		<description><![CDATA[直接上demo<br/><br/><a target="_blank" href="http://www.woaicss.com/works/demo/2011.11/2011112601.html" rel="external">[demo]</a>]]></description>
		</item>
		
</channel>
</rss>

