图片延时加载

moonwrite 2013-03-03 06:05:44
自己google了一下
有一个lazyload的 但貌似要一开始设置图片的高度

有推荐淘宝的 但要引用YUI

有没有更好的呢~
...全文
94 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yang20121995 2013-03-04
  • 打赏
  • 举报
回复
用Jquery
Assassin_ 2013-03-04
  • 打赏
  • 举报
回复
Jquery有自带的 都封装好的。
我是小李 2013-03-04
  • 打赏
  • 举报
回复
jquery的方法不错。
rayyu1989 2013-03-03
  • 打赏
  • 举报
回复
用jq实现的代码会更简洁

$(document).ready(function(e) {
	//图片延迟加载
	var change=function(){
		var top = $(document).scrollTop()+(document.all ? document.getElementsByTagName("html")[0].offsetHeight : window.innerHeight);				
		var objs=$("img[delay-img]");
		var length=objs.length;
		if(length<1){
			$(window).unbind("scroll",c_change).unbind("resize",c_change);
		}
		for(var i=length-1;i>-1;i--){
			var obj=objs[i];
			if(top>$(obj).offset().top + 10){
				var src=$(obj).attr("delay-img");
				$(obj).removeAttr("delay-img").attr("src",src);
			}
		}				
	}
	var timer=null;
	var c_change=function(e) {
		window.clearTimeout(timer);
		timer=window.setTimeout(change,100);
	}
	$(window).scroll(c_change).resize(c_change);
	change()
});
调用
<img delay-img="cache/236x348-2.jpg" width="236" height="348" alt="" />
当然如果你经常动态添加图片,就自己优化下吧
rayyu1989 2013-03-03
  • 打赏
  • 举报
回复
来挖我这个页面吧
http://www.i-ssy.com/drag-word.html
原生js写的,其实延迟很简单,就是检测右边滚动条的位置,结合 window.onscroll函数和 window.onresize 1开始就定义img的高度是有好处的,如果 没有 height=xxx 则浏览器默认图片的高度是很小的,像淘宝的展示, 滚动条一拉 就是一大把,设定了高度后能减少这种情况的发生

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧