Jquery 实现 图片延迟加载

た 入场券 2022-09-20 08:31 1176阅读 0赞

网上的那个Jquery的插件不好用,你试过就知道.

无奈,自己写了一段代码

$(function(){
var CPos=function(x, y) { this.x = x; this.y = y; }
var GetObjPos =function (ATarget){
var target = ATarget;
var pos = new CPos(target.offsetLeft, target.offsetTop);

  1. var target = target.offsetParent;
  2. while (target)\{
  3. pos.x += target.offsetLeft;
  4. pos.y += target.offsetTop;
  5. target = target.offsetParent;
  6. \}
  7. return pos;
  8. \}
  9. var reload=function()\{
  10. $('img.lazy').each(function()\{
  11. var o=$(this);
  12. if(!o.attr('data-original')) return true;
  13. if(o.attr('src')==o.attr('data-original')) return true;
  14. var top=GetObjPos(this)\['y'\];
  15. if(top==0)return true;
  16. var t=(document.documentElement && document.documentElement.scrollTop)?document.documentElement.scrollTop:document.body.scrollTop;
  17. if(top < t + document.documentElement.clientHeight + 400 && top+400>t) \{
  18. var org=o.attr('data-original');
  19. o.attr('src',org);
  20. \};
  21. return true;
  22. \})
  23. \}
  24. $(window).resize(reload)
  25. setInterval(reload,1000)
  26. \})

以上在窗口尺寸变化时调用, 每一秒调用. (如果放在滚动事件中,导致卡屏)

以上中的400,是预加载高度,可以调节

图片 HTML:

\{$title\}

发表评论

表情:
评论列表 (有 0 条评论,1176人围观)

还没有评论,来说两句吧...

相关阅读

    相关 jquery延迟图片的方法分享

    在网上经常会看到一些很长的网页会延迟加载其中的图片,我认为这是一种按需分配的做法,网页只为那些想继续浏览网页的人加载后面的图片,在不影响用户体验的前提下,使用jquery延迟加

    相关 jQuery延迟(懒

    简介 延迟加载(lazy load)又可称之为懒加载,他是为了避免一些无谓的性能开销而提出来的。所谓延迟加载,就是当真正需要数据的时候,才真正执行数据加载操作。可简单理解为