经常上tudou网,发现tudou首页加载图片的功能很有意思,tudou首页从"娱乐"这个板块往下的所有视频的缩略图并不是在页面打开后就加载的,而是当用户拖动滚动条到了"娱乐" 这个板块,才开始加载图片的。这样做的好处当然是如果有用户不需要查看下面的内容,则免去了下面所有图片的请求,这对减少服务器的压力还是很有帮助的。
其实tudou的实现原理很简单:
1.先把所有需要延迟加载的图片的src都设置成同1个小图片的连接(sprite.gif),把真真图片的连接地址放到图片的alt属性中,看下tudou的代码:
<a class="inner" target="new" title="史上最重街舞选手和最柔软街舞选手" href="http://www.tudou.com/programs/view/Utmt1_6Z-lU/">
<img width="120" height="90" class="pack_clipImg lazyImg" alt="http://i01.img.tudou.com/data/imgs/i/051/720/095/p.jpg" src="http://css.tudouui.com/skin/__g/img/sprite.gif" coords="_DAA"/>
</a>
2. 绑定window.scroll事件,在滚动事件里面改变所有class为lazyImg的图片的src值,在土豆首页找到如下JS:
var o=function(){
var s=TUI.pos.scrollTop(),q=c;
if(q.box[0]){
var r=q.box.offset().top;
if(r-s>0&&r-TUI.pos.windowHeight()<s){
q.init()
}else{
q.stop()
}
}
if(!h||s<590){return true}
TUI.widget.quickPlaylist.load();
h=false
};
o();
$(window).bind("scroll",o);
上面代码不能直接运行,但分析这些代码,我们可以了解tudou实现图片延迟加载的原理,然后来实现它。
模拟实现代码如下:
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
默认显示的图片:
<img src="http://at-img4.tdimg.com/board/2010/5/tylc-115X55.jpg"/>
不显示的图片:
<img width="120" height="90" style="border:1px solid red" class="lazyImg" alt="真实图片.jpg" src="空白图片.gif" />
<img width="120" height="90" style="border:1px solid red" class="lazyImg" alt="真实图片.jpg" src="空白图片.gif" />
<div style="height:1000px;"></div>
<script type="text/javascript">
var hasShow = false;
$(window).bind("scroll",function(){
if(hasShow==true){
$(window).unbind("scroll");
return;
}
var t = $(document).scrollTop();
if(t>100){
// 滚动高度超过100px,加载图片
hasShow = true;
$("#lazyBox .lazyImg").each(function(){
$(this).attr("src",$(this).attr("alt"));
});
}
});
</script>
分享到:
相关推荐
网页图片随滚动条加载是一种优化网页性能的技术,它主要针对含有大量图片的页面,通过只在用户滚动到可视区域时加载图片,来提高网页的加载速度和用户体验。这种技术也被称为懒加载(Lazy Loading)或者延迟加载(On...
滚动条滚动延迟加载图片是一种常见的优化网页性能的技术,也被称为懒加载(Lazy Loading)。这种技术主要应用于图片密集型的网站,如社交媒体、博客或者电子商务平台,目的是减少页面初始加载时间,提升用户体验,...
这里延迟加载的意思是,拖动滚动条时,在图片出现在浏览器显示区域后才加载显示。在这之前全部图片都由一张图片代替。节省流量,减轻服务器负担。 请用鼠标或者键盘方向键使页面向下滚动,注意图片的变化。本特效...
这是一款有关网页图片延迟加载的小案例,主要包括了图片随滚动条延迟加载、整个页面loading延迟加载、图片延迟加载、iframe打开页面延迟加载的技术。通过延迟加载技术可以提升网站的性能,有需要的朋友可以下载看看...
标题中的“jquery图片延迟加载”是指一种网页优化技术,它允许网页在用户滚动到图片所在位置时才开始加载图片,而不是在页面初次加载时一次性加载所有图片。这种技术可以显著提高网页的加载速度,减少用户的等待时间...
在网页设计中,图片延迟加载(Lazy Loading)是一种优化页面加载速度的技术,它只在图片进入用户可视区域时才开始加载,而不是一次性加载所有图片。这样可以显著减少页面初次加载的时间,提高用户体验,特别是对于...
"仿淘宝商城 图片随滚动条加载" 的技术就是一种优化加载策略,它采用了一种叫做“懒加载”(Lazy Loading)的方法,旨在改善页面加载速度,降低用户等待时间,并减少服务器负担。 懒加载的核心思想是在网页初次加载...
该压缩包文件“jQuery实现的图片水平滑动延迟加载动画效果源码(自定义水平滚动条).zip”主要包含一个示例代码,用于演示如何使用jQuery库创建一个具有自定义水平滚动条的图片水平滑动延迟加载动画效果。在本文中,...
本文将详细讨论如何在对话框上实现带有滚动条的图片显示功能,并解决可能出现的闪屏问题。 首先,我们需要创建一个自定义对话框类,继承自CDialog或CDialogEx。在这个类中,我们将添加两个成员变量,分别代表水平...
`$(window).scroll()`监听滚动事件,`$(this).offset().top`获取图片距离顶部的距离,`$(window).scrollTop()`获取滚动条位置,当图片进入可视区域时,替换data-src为src并显示图片。 ```javascript $(document)....
3. **惰性加载**:对非可视区域的内容延迟加载,直到用户滚动到相关内容时才开始加载。 4. **缓存**:利用浏览器缓存减少重复请求。 5. **服务器端优化**:如采用流式传输,降低服务器响应时间。 **适应性设计**: ...
JavaScript 图片延迟加载,也称为懒加载(Lazy Loading),是一种优化网页性能的策略,它旨在减少页面初始加载时间,提高用户体验。当用户滚动页面时,只有进入可视区域的图片才会被加载,而不是一次性加载所有图片...
这种技术主要应用于长页面,尤其是那些包含大量图片的页面,它能延迟加载非可视区域内的图片,直到用户滚动到这些图片所在的区域时才开始加载。这不仅可以减少初次加载页面时的数据量,还能让页面的初始显示更快,...
在H5页面开发中,下拉刷新和上拉加载是常见的功能,...综上所述,H5下拉刷新上拉加载滚动条位置的处理是提升Web应用用户体验的关键一环。通过合理的技术实现和优化策略,我们可以为用户提供更加流畅、自然的浏览体验。
**jQuery图片延迟加载效果** 在网页设计中,图片是最消耗页面加载时间的元素之一。为了提升用户体验,一种常见的优化策略是使用jQuery实现图片延迟加载(Lazy Load)效果。这种技术只在图片进入浏览器的可视区域时...
很多网站首页打开比较慢,图片多,可以用这个延迟加载,图片会随滚动条,加载图片
ImageLazyLoad技术就是,当前可见界面的图片是加载进来的,而不可见页面(通过滚动条下拉可见)中的图片是不加载的,这样势必会引起速度上质的提升。 怎么实现ImageLazyLoad 一、使用JQuery插件 ,插件名: ...
这里可以使用`$(window).scrollTop()`获取滚动条的位置,`$(document).height()`获取文档总高度,以及`$(window).height()`获取视口高度,计算出图片是否进入可视区。 以下是一个简单的示例代码: ```javascript $...
在网页设计和开发中,"不随滚动条滚动的模式窗口"是一种常见的用户体验设计技术,它允许用户在当前页面上打开一个全屏或半屏的弹出窗口,而这个窗口不会随着页面的滚动条移动。这种效果常用于图片预览、表单填写、...