RSS
people

区别中英文截取字符

最近很忙,博客很久没有更新了,今天抽出了一点闲暇时间,动手写了这个“区别中英文截取固定字符”的jQuery插件,暂且命名为fixtext吧,相信前端的兄弟们,这种情况会经常遇到,但是一直找不到太完美的解决办法,通常下用css截取,但是css有弊端,最令人不满意的是,限定宽度后有可能会截掉不完整的字符,相当的不雅,后台截取当然最好,但是多数情况下PD不一定愿意干这个活。今天特意写了这个插件,基本能满足大家的工作需要了,包括中英文混排的文字,并且可以区分UTF-8,和GB2312,这样大家应该清楚,中文的编码不一样占的字符也是不一样的,UTF-8占了三个字符,而GB2312占了两个字符,另外还包括一个非常实用的功能——是否保留省略号,用起来还算方便吧。
fixtext插件源码:

/*
* fixtext 0.1
* Copyright (c) 2010 Rainboy http://www.rainboys.cn/
* Date: 2010-07-26
* 区别中英文截取字符
*/
(function(){
$.fn.fixtext=function(options){
var defaults={
ellipsis:true,
maxLen:"15"
}
var options = $.extend(defaults, options);
this.each(function(){
var fixobj=$(this);
//判断网页的编码方式,如果是UTF-8那么一个汉字就占3个字符,如果GB2312一个汉字占2个字符
var webcode;
webcode=(document.characterSet)?document.characterSet:document.charset;
incre=(webcode.toUpperCase()=="GB2312")?2:3;
var currentStr="";
var text=$(fixobj).html();
var textlen=text.length;
//判断是否保留省略号
options.maxLen=(options.ellipsis)?options.maxLen-2*incre:options.maxLen;
for(var i=0,len=textlen;i<len; i++){
currentStr+=text.charAt(i);
if(getCharLength(currentStr,incre)>options.maxLen){
//不保留里省略号的文字内容
text2=text.substr(0,i);
//保留里省略号的文字内容
if(options.ellipsis){text2=text2+"……"}
$(fixobj).html(text2);
return;
}
else{
$(fixobj).html(currentStr);
}
}
//计算截取字符的长度
function getCharLength(str,incre){
var charLen=0;
for (var i=0,len=str.length; i<len; i++){
if(str.charCodeAt(i)>255){
charLen+=incre;
}
else{
charLen+=1
}
}
return charLen;
}
})
}
})(jQuery)

引用脚本

$(要截取的对象).fixtext({ellipsis:false,maxLen:"20"});

这里面包括了两个参数ellipsis和maxLen,顾名思义,ellipsis它就是决定是否保留省略号的,当他的参数是“true”的时候,就保留省略号,“false”时就不保留省略号,maxLen就是截取的字符长度,有一点提醒一下大家,maxLen包括省略号的长度,比如要截取20个字符,并且保留省略号,如果页面编码是GB2312,那么截取的字符就是16个。插件的源代码就不解释了,注释已经很详细了。童鞋们使用过程中遇到了问题的话,请给我留言!欢迎大家来交流!

Demo : http://www.rainboys.cn/demo/fixtext.html

插件下载地址:http://www.rainboys.cn/demo/js/fixtext.js

3 Comments | Tags: , ,

解决IE6背景图片不缓存的问题

IE6在背景图片缓存上有一个bug:它会每次都从服务器端读取背景图片。例如我们使用a:hover更换背景图片,在IE6下会出现每次鼠标滑过则重新向服务器请求图片,如果服务器反应较慢,那么hover效果就会出现短暂的空白,令人极度不爽。虽然可以通过CSS sprites的方式解决问题的,但效果差强人意。 示例: a{ background:url(normal.gif); } a:hover { background:url(hover.gif); } 如果为超级链接定义上述的css样式以实现鼠标悬浮时的动态效果,在firefox下是没有什么问题的,第一次加载之后,浏览器都会从缓存读取背景图片. 解决方法 具体的解决方法就是在页面中加入一段简单的javascript脚本,告诉IE6:本地有背景图片的话就不要麻烦服务器了。 document.execCommand(“BackgroundImageCache”,false,true); 关于这段脚本的放置方式有两种:

1.使用CSS,在CSS中加入如下代码 html {}{ filter: expression(document.execCommand(“BackgroundImageCache”, false, true)); }

2.使用JS: document.execCommand(“BackgroundImageCache”,false,true);

2 Comments | Tags: ,

【转】白鸦”我心目中的”产品中心”

自从说了“不应该有“用户体验设计”这个说法之后”(链接),又看到不少人在讨论产品经理、交互设计、用户体验这些分工之 间的协作问题。刚好,前些天帮某中小型公司提了个“产品中心”的配备方案。晒出来,且作为我对 于产品、设计、体验之间的看法。欢迎讨论,不欢迎挑刺。

HI,all

对于这个“产品中心”,我的这个想法有几个基础前提如下:

0、以下观点仅针对我所看到的“大部分”企业,是否适用尚未可知。
1、不应有专门的“UED”部门,设计和产品要放到一起。
2、我心目中的PM是“产品市场经理”,除了产品还应该考虑产品运营和产品体验。项目经理应该定义成PM在某个阶段的助手。
3、PM的定位和能力,根据企业和产品的模式不同,应该有所偏重。比如,百度是偏体验的、淘宝是偏运营的、阿里B2B是偏销售的,Google是偏协调 的。
4、PM应该决策该产品的所有事宜,因为他要承担产品的所有责任。但不是自己亲手做所有事情。当然,更应该充分尊重其他角色领域的专业意见。
5、交互设计和产品设计根本撤不清,所以就别指望撤清,我们往往说“多沟通”就能解决,其实是在避重就轻的扯蛋。
6、类似文案设计的工作不应该列专门的部门,而是谁做的产品谁负责,谁写的文字谁负责。但,需要有角色去倡导、协调、管理所有文案的统一气质和质量。
7、必须要有一个“架构师”,来负责协调所有产品之间的关系,和统一风格。
………………………….. read more »

No Comments | Tags: ,

让页面变得更快一点

Web页面运行在各种各样的浏览器当中,浏览器载入、渲染页面的速度直接影响着用户体验。非常不幸的是,效率最低的IE浏览器仍然占领者绝大多数市场份额,这已经严重制约了互联网的发展(感叹一下:“马赛克和IE——阻碍人类文明发展的绊脚石!”)。

简单地说,页面渲染就是浏览器将html代码根据CSS定义的规则显示在浏览器窗口中的这个过程。先来大致了解一下浏览器都是怎么干活的:

  1. 用户输入网址(假设是个html页面,并且是第一次访问),浏览器向服务器发出请求,服务器返回html文件;
  2. 浏览器开始载入html代码,发现<head>标签内有一个<link>标签引用外部CSS文件;
  3. 浏览器又发出CSS文件的请求,服务器返回这个CSS文件;
  4. 浏览器继续载入html中<body>部分的代码,并且CSS文件已经拿到手了,可以开始渲染页面了;
  5. 浏览器在代码中发现一个<img>标签引用了一张图片,向服务器发出请求。此时浏览器不会等到图片下载完,而是继续渲染后面的代码;
  6. 服务器返回图片文件,由于图片占用了一定面积,影响了后面段落的排布,因此浏览器需要回过头来重新渲染这部分代码;
  7. 浏览器发现了一个包含一行Javascript代码的<script>标签,赶快运行它;
  8. Javascript脚本执行了这条语句,它命令浏览器隐藏掉代码中的某个<div>(style.display=”none”)。杯具啊,突然就少了这么一个元素,浏览器不得不重新渲染这部分代码;
  9. 终于等到了</html>的到来,浏览器泪流满面……
  10. 等等,还没完,用户点了一下界面中的“换肤”按钮,Javascript让浏览器换了一下<link>标签的CSS路径;
  11. 浏览器召集了在座的各位<div><span><ul><li>们,“大伙儿收拾收拾行李,咱得重新来过……”,浏览器向服务器请求了新的CSS文件,重新渲染页面。  read more »

1 Comment | Tags: ,

无题

或许吧,能感受她的幸福,就是我最大的的快乐,只希望每次电话的那头都能够听到鬼灵的笑声,这就是对我奖励的,会让我觉得满足,能让我感觉到幸福,不喜欢争吵,只想多做一些,只想每天都看她会心的微笑!

1 Comment |

招聘前端

Frontend Web Engineer (UED)

Responsibility:

Design, Implement and Maintain the web products

focus on frontend user experience by HTML/CSS/JS/Flex and frontend application logic.

Requirement:

1. BS/MS in Computer Science or Engineering related.

2. BS 2+ years in web frontend development & enterprise application development experience

3. Experience in frontend web development experience (HTML, CSS, DOM, JAVASCRIPT, XML, Flex, etc.)

4. Experience in multiple OS/Browsers, including Windows, Mac, Linux, and IE, Firefox, Safari.

5. Experience in Java, frontend Ajax framework, RIA base on Flash, and performance tuning, is better.

6. Experience in UI/UE design, thinking from customer standpoint, is better.

7. Solid problem solving, design, troubleshooting, and debugging skill.

8. Be creative, innovative and always look for improvements.

9. Excellent communication and collaboration skills in Chinese and English.

工作地点杭州,知名外企,提供业内有竞争力的待遇

联系人Robin,有意者请速将简历发送到yugege0@gmail这个邮箱

No Comments |

宝贝你听到了吗

宝贝你听到了吗
我在轻轻对你说话
看到你露出的笑脸
是我看到最美的图画
宝贝你听到了吗
我在轻轻等你回答
你眼里透出的快乐
是我一生最大的满足

牵着你的手陪你慢慢走
我有多爱你多想你知道
希望有一天你站在我肩上
挥动着翅膀把梦想打量
……

No Comments |

招聘UI设计师

职位描述:
1.
负责网站及网络产品的设计和创意;
2. 与软件开发人员及网页后台程序员进行沟通和配合,分析客户需求,能独立完成网站界面设计;

职位要求:
1. 在互联网公司从事网站UI设计工作1年以上;
2. 精通photoshop、Illustrator等制图软件;
3.
理解UED,了解 界面Usability 易用性,熟练掌握界面设计中的色彩运用
4. 熟悉XHTML/CSS等网页技术优先考虑;
5. 积极、乐观、愿意沟通。

*薪资面议
*请投递简历时,说明您的:

  1. 博客
  2. 作品

联系人:Weston
Mobile: +86-13472466606 | Phone: +86-21-39556264
Skype ID: gxbsst | MSN: gxbsst@gmail.com | Twitter: @Weixuhong
Email: weixuhong@gmail.com OR weston.wei@tohkin.com
Website: www.tohkin.com

5 Comments | Tags: ,

【转】jQuery类对象数组操作

我们都知道jQUery对象中有一个类数组的元素包装集,该集合类似js中的数组一 样拥有length属性,因此我们称此为类数组,下面我们就来总结下这个jQuery对象中的类数组时如何进行操作的,看看我们的jQuery为我们都提 供了哪些可用的方法:

size():很明显,它应该是返回包装集中的元素个数,如$(‘a’).size()表示链接元素的个数;

get(index):当没指定index时就默认取包装集中所有元素,并以js中的数组形式返回,如果指定了index,则返回下标为 index对应的元素,如$(‘img[title]‘).get(0)返回包含属性title的第一个img元素,其也等效 于$(‘img[title]‘)[0];

index(elem):在包装集中返回元素elem所在的下标,如果没找到该元素则返回-1;

add(String|elem|Array):把参数中的元素添加到包装集中,如果参数是jQuery选择器,那么将把所有匹配的对象都添 加到集合中,如果是html元素那就通过clean方法得到的元素数组添加到集合中,如果是dom元素或dom元素数组,那就直接添加到集合了;注意返回 的是添加后的包装集;如$(‘img[alt]‘,’img[title]‘)等效于$(‘img[alt]‘).add(‘img[title]‘)即 返回包含了alt属性的img元素或包含了title属性的img元素; read more »

4 Comments | Tags: ,

使用YUI Compressor压缩合并CSS/JS

今天看了淘宝改进的Compressor感觉还不是很方便,虽然可以可视化的操作了,不用输那么一长串的文件名,但是不能合并多个文件,所以没有根本上解决问题,所以继续寻找,好在找个找到了这个老兄的办法。自己做一个bat文件,和一个需要合并的文件列表(txt)。先合并列表中的所有文件,然后再用yuicompressor压缩文件。具体方法如下: read more »

No Comments |