社区
JavaScript
帖子详情
求一个你们在用的,效果很好的,兼容all的,简单的图片延迟加载JS代码
bennman
2011-08-04 10:15:04
如题,自己不会写,看到淘宝,凡客,麦考林 == 用的都不同 不知道哪个好!
给一个你们在用的吧 亲!
...全文
162
4
打赏
收藏
求一个你们在用的,效果很好的,兼容all的,简单的图片延迟加载JS代码
如题,自己不会写,看到淘宝,凡客,麦考林 == 用的都不同 不知道哪个好! 给一个你们在用的吧 亲!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bennman
2011-08-04
打赏
举报
回复
自己顶...
bennman
2011-08-04
打赏
举报
回复
[Quote=引用 2 楼 lin1658 的回复:]
另外可以使用jquery.lazyload.js,这个更方便
[/Quote]
谢谢,你说的textarea是延迟加载某一部分的代码 这个不需要
jquery.lazyload.js 这个 我知道官方(老外写的)的是不兼容的
不知道有米有被人改好,能否提供兼容all的
lin1658
2011-08-04
打赏
举报
回复
另外可以使用jquery.lazyload.js,这个更方便
lin1658
2011-08-04
打赏
举报
回复
原理很简单,三步:
1、把要延时的html片段放到textarea标签下;
2、获得textarea的value值,用正则表达式替换图片地址,并把实际地址设置成img自定义属性realsrc;
3、动态append预加载的dom。
(function($){
$.fn.dScroll=function(opts){
opts=$.extend({
itemSelector:'.item' //列表
,acSelector:'.append-content' //追加textarea容器
,blankImgSrc:'images/s.gif' //占位符
,scrollTime:1000
,delayTime:3000
},opts);
return this.each(function(){
//初始化
var $inner //里面包一层
,$me=$(this)
,$initShowItems=$me.find(opts.itemSelector) //初始化可见的列表项
,$acWrapper=$(opts.acSelector,$me) //追加textarea容器
,acValue=$acWrapper.val() //要追加的内容
,$ac //追加内容的jquery对象
,appendMark=false //追加结束标记
,blankImgSrc=opts.blankImgSrc
,cur=0 //最顶端的列表项index
,initShowItemsNum=$initShowItems.length //初始化可见的列表项数目
,realItemsNum //实际列表项数目
,tid //setInterval句柄
,events;
//清除append容器
$acWrapper.remove();
//init wrapper
$me.height($me.height()).css({
'overflow':'hidden'
});
//将图片实际地址变成img的特殊属性,留待以后替换
acValue=acValue.replace(/<(img[^>]*) src="([^"]*)"([^>]*)/gi,function(p0,p1,p2,p3){
return "<"+p1+' src="'+blankImgSrc+'" realsrc="'+p2+'"'+p3;
});
//生成dom
$ac=$(acValue).filter(opts.itemSelector);
//用相对定位控制滚动
$initShowItems.wrapAll('<div class="inner" />');
$inner=$me.children('.inner').css({
'position':'relative'
,'top':'0px'
,'left':'0px'
});
var scrollFn=function(){
var $newItem
//,curScrollTop=$me.scrollTop()
,moveDis=0;
if(!appendMark){ //如果追加没结束
$newItem=$ac.eq(cur);
if($newItem.length>0){
//替换为真实图片地址
$newItem.find('img').each(function(){
$(this).attr('src',$(this).attr('realsrc'));
});
$newItem.appendTo($inner);
}else{ //追加结束
//获得实际item数目
realItemsNum=initShowItemsNum+cur+1;
$inner.find(opts.itemSelector).clone().appendTo($inner);
appendMark=true;
}
}
if(appendMark&&cur===(realItemsNum-1)){
cur=0;
$inner.css({
top:0集装箱运费
});
}
//移动距离
moveDis=$inner.stop(true,true).position().top-$me.find(opts.itemSelector).eq(cur).outerHeight(true);
$inner.animate({
top:moveDis
},opts.scrollTime,function(){
cur++;
});
}
tid=setInterval(scrollFn,opts.delayTime);
//鼠标悬浮就不要滚了
$me.hover(function(){
clearInterval(tid);
},function(){
tid=setInterval(scrollFn,opts.delayTime);
});
//监听外部事件变化
$me.bind('stopdscroll',function(e){
clearInterval(tid);
});
$me.bind('restartdscroll',function(e){
clearInterval(tid);
tid=setInterval(scrollFn,opts.delayTime);
});
});
}
})(jQuery);
原声
JS
瀑布流加
延迟加载
本文介绍如何实现瀑布流布局并结合
延迟加载
技术优化网页性能。通过使用HTML、CSS和JavaScript,实现在不同屏幕尺寸下自适应排列
图片
,同时减少初始加载时间和提升用户体验。
Colorify.
js
源码解析:理解Canvas图像处理的核心算法 [特殊字符]
本文深入解析Colorify.
js
源码,重点阐述其基于Canvas API的图像颜色提取核心算法,包括像素数据采样、单色平均值计算、双区域渐变色生成机制,以及采样精度控制等性能优化策略。内容涵盖Canvas图像数据处理流程、RGB像素遍历与聚合方法,适用于
图片
画廊背景适配和动态主题生成等前端图像处理场景。
hugo-theme-cleanwhite性能优化指南:让你的博客加载速度提升50%
本文针对hugo-theme-cleanwhite主题提供六大性能优化策略:CSS合并与加载优化、JavaScript异步与合并处理、
图片
格式转换(WebP)与懒加载、减少HTTP请
求
(外链资源本地化)、启用Hugo内置资源压缩与HTML/CSS/
JS
最小化、字体加载策略优化。优化后页面加载时间降低约50%,HTTP请
求
数减少60%以上,页面体积缩减40%。
obtvse性能优化:提升博客加载速度的7个实用技巧
本文围绕obtvse轻量级博客系统的性能瓶颈,提出7项关键技术优化措施:数据库查询索引优化、页面缓存启用、静态资源(CSS/
JS
)压缩、
图片
延迟加载
与WebP格式适配、视图模板精简、生产环境配置调优、定期日志与数据库维护。所有方案均基于Rails框架特性,聚焦服务器响应速度与前端加载效率提升,适用于部署运维与开发调优场景。
Avgrund性能优化终极指南:如何确保深度模态
效果
不影响页面性能 [特殊字符]
本文系统阐述Avgrund深度模态UI的性能优化策略,涵盖CSS滤镜智能启用、transform硬件加速动画优化、模态内容精简实践、事件监听器内存管理等核心方法;提出
延迟加载
、will-change提示、性能监控等高级技巧,并给出FPS≥60、打开时间<100ms等量化基准,结合Chrome DevTools、Lighthouse等工具实现可验证的高性能模态体验。
JavaScript
87,990
社区成员
224,684
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章