博客 - 文章更新

imglazyload图片延迟加载(jQuery)

2011-06-20 下午 - JS/Ajax/AS - -

这个小效果还是3个月前写的,太忙,一直没空更新blog,刚好有点空闲,抽出来简单弄弄了~

container容器,attr属性,timeout延时。这些都可以有自己灵活控制的!原理简单不过了,图片先不设置src属性,浏览器就不会产生请求,监听起滚动条和窗口大小的事件,通过判断图片是否处于当前可视区域(offset的left和top方向分别小于scrollTop+clientHeight和scrollLeft+clientWidth)来控制图片是否显示,显示则设置img对象的src属性为标签中自定义属性的值!

主要代码

this.container = $(this.options.container);
this.imgNum = this.container.find('img['+ this.options.attr +']');
var _this = this;
if(this.imgNum.length){
    
this.timer&&clearTimeout(this.timer);
    
this.timer = setTimeout(function(){
        
var arr = [],gc = _this.getClient();
        $.
each(_this.imgNum,function(i,o){
            
if($(o).offset().top <= gc.top && $(o).offset().left <= gc.left){
                
var attrval = $(o).attr('lazysrc');attrval&&$(o).attr('src',attrval).removeAttr('lazysrc').hide().fadeIn();
            
}else{
                
arr.push(o);
            
}
        
});
        
_this.imgNum = arr;
    
},this.options.timeout);
}else{
    $
(window).unbind('scroll',this.check);
    $
(window).unbind('resize',this.check);
}

返回当前屏幕显示范围

return{'top':document.documentElement.clientHeight+Math.max(document.documentElement.scrollTop,document.body.scrollTop),'left':document.documentElement.clientWidth+Math.max(document.documentElement.scrollLeft,document.body.scrollLeft)};

demo展示:http://www.11gz.com/demo/js-ajax/imglazyload.html

No Comments »

IE6正在消亡

2011-04-5 下午 - html/css/xml/xsl - -

http://ie6countdown.com/

IE6在欧美地区已经消失得差不多了,现在重症区是亚洲,中国肯定是排在第一名的,呵呵~!好在还有韩国作陪,再下面就是印度、日本了。最厉害的还是芬兰和挪威,都是小于1个芭仙!

期待着IE6早日“灭绝”,也好给我们这群写代码的省点时间,提高点编码效率!

7 Comments »

ECMAScript 5的兼容性

2011-04-2 上午 - JS/Ajax/AS -

Kangax:ECMAScript 5 compatibility table

1 Comment »

css中设置微软雅黑

2011-03-23 上午 - html/css/xml/xsl - -

笔记一下,我是这样在css中设置文本字体为“微软雅黑”的。

.selector {font-family:"Microsoft YaHei",微软雅黑,"Microsoft JhengHei",华文细黑,STHeiti,MingLiu}

之所以加上中文名“微软雅黑”是为了兼容opera。Microsoft JhengHei为微软正黑体,STHeiti为华文黑体,MingLiu记得11px下的中文有着不凡的效果。

4 Comments »

jQuery+easing缓动的动画

2011-03-5 下午 - JS/Ajax/AS - -

jQuery实现动画再简单不过了,只是要实现更酷的效果还需要插件来帮忙,easing就是一款帮助jQuery实现缓动动画的插件,经过试用,效果很不错,记录一下使用方法吧!

下载该插件:jquery.easing.1.3.js jquery.easing.compatibility.js

演示地址:http://www.11gz.com/demo/js-ajax/easing/index.html

方法介绍:

  • def:默认方式设置
  • swing:默认方式加载
  • Quad:二次方缓动(t)
  • Cubic:三次方缓动
  • Quart:四次方缓动
  • Quint:五次方缓动
  • Sine:正弦曲线缓动
  • Expo:指数曲线缓动
  • Circ:圆形曲线的缓动
  • Elastic:指数衰减的正弦曲线缓动
  • Back:超过范围的三次方缓动
  • Bounce:指数衰减的反弹缓动

关于In、Out、Inout的说明:

  • easeIn:加速度缓动;
  • easeOut:减速度缓动;
  • easeInOut:先加速度至50%,再减速度完成动画。

缓动方式的翻译来自:JavaScript Tween算法及缓动效果

如何应用:

slideUp|slideDown|slideToggle|fadeIn|fadeOut|fadeToggle

$(element).slideUp(duration,easing,[callback]);

fadeTo

$(element).fadeTo(duration,opacity,easing,[callback]);

animate

$(element).animate({properties},duration,easing,callback);

jQuery1.4+版本更可以:

$(element).animate({left:[100,'swing'],top:[100,'easeOutBounce']});

或者

jQuery(myElement).animate({left:100,top:100},{specialEasing:{left: 'swing',top:'easeOutBounce'}});

具体可参阅jquery1.4+的API。

4 Comments »

固定盒子宽高水平及垂直居中的整理

2011-03-4 下午 - html/css/xml/xsl -

记得就一句话是这样说的:table能实现的,css一定能实现;css实现的,table未必能实现。水平和垂直的居中,其实不是什么难事,前提是弄懂了各个浏览器的兼容性以及应对这些兼容问题的css hack。

方法一

html

<div class="demo1"><img src="图片路径" alt="" /></div>

css

.demo1 { width:180px; height:180px; line-height:180px; *font-size:160px; border:1px solid #ddd; text-align:center;}
.demo1 img { vertical-align:middle;}

PS:利用行高等于盒子高度实现高级浏览器,IE6/7的hack font-size等于盒子height乘以差不多0.873的数值,参看:怿飞:图片垂直居中的使用技巧

方法二

html

<div class="demo2"><img src="图片路径" alt="" /></div>

css

.demo2 { width:180px; height:180px; display:table-cell; vertical-align:middle; *font-size:160px; border:1px solid #ddd; text-align:center;}
.demo2 img { vertical-align:middle;}

PS:font-size同上等于盒子height乘以差不多0.873的数值,IE7以上版本及其他高级浏览器均支持display的table-cell。

方法三

html

<div class="demo3"><div class="demo3_inner"><img src="图片路径" alt="" /></div></div>

css

.demo3 { display:table; position:relative; text-align:center; height:180px; width:180px; border:1px solid #ddd;}
.demo3_inner { display:table-cell; vertical-align:middle; position:absolute; top:50%;
.demo3_inner img { position:relative; top:-50%; left:-50%;}
.demo3 > .demo3_inner { position:static;}
.demo3 > .demo3_inner > img { position:static;}

PS:相对定位加绝对定位实现IE6/7,display的table-cell实现高级浏览器。

如果要放文字

html

<div class="demo4"><div class="demo4_inner"><p>如果是文本,需要添加一标签来实现,我这里添加的是p。</p></div></div>

css

.demo4 { display:table; position:relative; height:180px; width:180px; border:1px solid #ddd; text-align:center;}
.demo4_inner { display:table-cell; vertical-align:middle; position:absolute; top:50%;}
.demo4_inner p { position:relative; top:-50%; left:-50%;}
.demo4 >/**/ .demo4_inner { position:static;}
.demo4 >/**/ .demo4_inner > p { position:static;}

演示代码:http://www.11gz.com/demo/html/vertically.html

我测试过的且兼容的浏览器有:IE6+,Opera,Firefox,Safari,chrome,希望各位朋友帮忙测试其他浏览器。

4 Comments »

jQuery实现dialog(对话框)

2011-03-1 上午 - JS/Ajax/AS - -

话说系统默认的对话框使用方便,但是功能单一且比较的难看(不能自定义样式),那么自己来写代码扩展一些更复杂的功能并美化一下。本代码采用面向对象思想对一些属性和方法进行了封装,性能有待测试,欠妥之处,欢迎指正!

dialog

演示地址:http://www.11gz.com/demo/js-ajax/dialog/index.html

设置参数object说明:

  • width:显示宽度,默认为400px
  • title:标题,默认为“小提示”
  • show:是否显示dialog,如果要做到延迟显示,设置此属性为false,默认为true
  • modal:是否显示半透明遮罩背景,默认为不显示 false
  • closeDelay:自动关闭的延时时间,单位:毫秒 默认为0,不延时关闭

会自动关闭的小提示

dc_dialog.popTip("自动关闭的小提示","这是个会自己关闭的气泡小提示","2000",{'modal':true});

参数1:提示窗口的标题; 参数2:提示的内容文本; 参数3:停留时间(毫秒) 参数4:object

弹一个小提示

dc_dialog.popTip("小提示2","这仅仅是一个小提示2","0",{'modal':false});

参数1:提示窗口的标题; 参数2:提示的内容文本; 参数3:停留时间(0为不自动关闭) 参数4:object
ps:如果不需要显示遮罩层,可省略后两个参数
dc_dialog.popTip("小提示2","这仅仅是一个小提示2");

弹一个确认框,confirm

dc_dialog.confirm("你支持这个决定吗?",['是','否'] , function(val) {alert("你选择了: " + val);}, {title:"一个确认否定的框",'modal':true});

参数1:问题; 参数2:选项; 参数3:成功后的回调函数 参数4:object

异步加载数据

dc_dialog.load("load.html",{'title':'异步加载的信息','width':'600px','modal':true});

参数1:加载页面的url地址; 参数2:object

iframe

dc_dialog.frame("frame0","iframe.html",{'title':'一个iframe','width':'600px','modal':true});

参数1:iframe的id和name; 参数2:加载页面的url地址; 参数3:object

本代码有参考【jQuery插件】一个简易弹出层效果之处,感谢 愚人码头

1 Comment »

骗子不可怕,就怕骗子有文化

2011-02-28 上午 - thinking -

帮忙转发:高科技,高智商犯罪,很可怕!这事摊谁身上谁也难以防范,支付宝交易,钱没进支付宝,去了其他的支付平台!怪哉,怪哉~

看见此文的朋友,注意看看,谨防日后受骗!多多防备别人给你发exe(或者自己搞不明白的)后缀的文件!

我这里就贴个链接地址了:在淘宝被诈骗5.46万始末

遥祝千鸟兄早日破案,夺回损失!

1 Comment »