0%


直奔主题,google和百度的搜索框都会有这种自动提示关联词条的功能,自己最近接触的项目也有多个地方要做这个功能,后台开发咱不懂,所以从前端JS方面来说说这个功能的主要两点性能优化。

Read more »

第一次写EDM邮件页面,也就是邮箱里面经常收到的那些广告邮件的页面。

首先EDM需要用table布局,所以我作为一个前端第一次尝试用table布局来写页面。。。用table布局的原因主要还是各种邮箱和邮件收发客户端的兼容性问题,用table的话可以正常显示。

table布局的第一要素就是永远都不要忘记给tabel加上 border=”0” cellpadding=”0” cellspacing=”0” 的属性,然后td里再包table,td要设置宽高之类的,就不说了。

然后EDM的第二要素就是所有CSS样式都要写在元素标记内,不需要任何的class和ID,所以会有很多重复的css也在所难免。

然后就是不要用背景图,所有图片最好用IMG标签插入,所以设计的时候也要注意了,不要有图上再加文字的设计。IMG标签记得加border=”0”,然后记得设宽高,有alt也写一下当然是最好了。

图片要设display:block,不然会有下边距

还有图片的地址链接不采用map标记形式,因为map标记在outlook中无法进行正常的点击,即无法打不开该链接指向的网址。

不要简写颜色,比如#fff,要完整写成#ffffff。简写的颜色在IE怪异模式下会出些小问题。

最好不要使用span标签,因为其在某些邮箱里会导致换行。

不要使用flash图,小的动画可以用gif图,不过能不要就不要了吧,一个邮件还搞动画干嘛。。。

从别处看来的注意事项:
内容比例邮件模板中,图片及文字应具有平衡的比例,从门户的判断机制上来看,邮件正文中文本的比例越合理,被判断为垃圾邮件的可能性越小,尤其是网易。

推荐一个jquery插件autosize:http://www.jacklmoore.com/autosize/

根据textarea里的内容自适应textarea高度,有点像iphone里的短信输入框之类的东西,很适合一些对高度有要求的布局设计,注意要使用jquery1.7以上的版本,兼容IE6,demo直接看上面的链接吧~

调用:


$(document).ready(function(){
    $('textarea').autosize();
});

我一般用w3school来查jquery的API,发现竟然没有on()方法。。。

遇到的问题是ajax生成的代码无法触发其中元素的JS事件,当然你可以用live()方法来实现,但是live()方法在jquery1.9版本里被删除了,这里最好是用on()方法,jquery1.7之后的版本才有on()方法。

Read more »

jquery.cookie.js 提供了jquery中非常简单的操作cookie的方法。

// 获得cookie
$.cookie('the_cookie');

// 设置cookie
$.cookie('the_cookie', 'the_value');

//设置带时间的cookie
$.cookie('the_cookie', 'the_value', { expires: 7 });

// 删除
$.cookie('the_cookie', '', { expires: -1 });

// 删除 cookie
$.cookie('the_cookie', null);

//新建一个cookie 包括有效期 路径 域名等
$.cookie('the_cookie', 'the_value', {expires: 7, path: '/', domain: 'jquery.com', secure: true});
删除cookie的时候要注意:如果这个cookie在建的时候有设置路径(path)的话,在删除cookie时要加上相同的path jquery.cookie.js默认的过期时间expires值是以天为单位的,如果我们想以分钟为单位,可以这么写:
var date = new Date();
var minutes = 10;
date.setTime(date.getTime() + (minutes * 60 * 1000));
$.cookie('the_cookie', 'the_value', { expires: date });

JS监听键盘按键来执行时间,代码如下:



document.onkeydown=function(e){
var isie = (document.all) ? true:false;
var key;
if(isie){
key = window.event.keyCode;
}else{
key = e.which;
}
if(key==37){
alert(‘left’);
}
if(key==38){
alert(‘top’);
}
if(key==39){
alert(‘right’);
}
if(key==40){
alert(‘down’);
}
};

这里监听的是键盘上下左右方向键的事件。
Read more »