为一名站长,由于网站的图片加载速度慢,而影响用户体验度的问题不可避免,所以今天小编就给大家分享一个图片延迟加载的插件。
我们这里要用到的是一款名叫lazyload的插件。lazyload是一个用JavaScript编写的基于JQuery的插件。它可以延迟加载长页面中的图片,从而提升用户体验度!
图片异步加载,就是指在浏览器可视区域外的图片不会被载入,直到用户将页面滚动到它所在的位置的时候才加载显示。在包含很多大图片长页面中延迟加载图片可以加快页面加载速度。浏览器将会在加载可见图片之后即进入就绪状态
Lazy Load 依赖于 jQuery,请将下列代码加入页面head区域:
<script src="jquery.js" type="text/javascript"></script>
<script src="jquery.lazyload.js" type="text/javascript"></script>
上述用到的jquery.js和jquery.lazyload.js请自行搜索下载。
然后在页面底部插入下面的JavaScript代码:
<script type="text/javascript">
$(function(){
$("img").lazyload({
placeholder:"lazy.gif", //加载图片前的占位图片
effect:"fadeIn" //加载图片时的效果(淡入),show(直接显示),fadeIn(淡入),slideDown(下拉)等,常用fadeIn
})
})
</script>
然后附一个加载图片前的占位图给大家
当然一个完美的插件参数不可能就只有这两个,还有如下几个可选参数
placeholder : "img/grey.gif", //用图片提前占位
effect : "fadeIn", //载入使用何种效果,effect(特效),值有show(直接显示),fadeIn(淡入),slideDown(下拉)等,常用fadeIn
threshold : 200, //提前开始加载
event : "click", //事件触发时才加载,event,值有click(点击),mouseover(鼠标划过),sporty(运动的),foobar(…).可以实现鼠标划过或点击图片才开始加载,后两个值未测试…
failurelimit : 10, //图片排序混乱时 ,failurelimit,值为数字.
通过以上几步,就能简单实现网页图片异步延时加载了。
如果本文对你有用的话请不要忘记分享关注哦!谢谢观看!
文链接:http://www.gbtags.com/gb/share/6366.htm?
原本是打算昨天昨天下午的时候就写一篇关于前端图片延迟加载的详细技术的博客的,没想到下午公司项目出现了一些问题,所以一直在改代码进行调试,今天白天一整天又在外面跑,回来已经傍晚了,刚吃完饭,就想着赶紧补上,这样很多不懂这方面具体实现的小伙伴们也能早点学习经验。
前端页面的用户体验对于一个网站来说是至关重要的,我们在访问一些图片量比较大的网站的时候,往往会有这样的感受:显示在我电脑屏幕可视区域的图片总是不能及时的刷出来,这就造成了对于一些没有什么耐心的用户而言,他们就不愿意多等下去,索性直接关闭了网站去看其他的网站,这就使得本网站的用户量的流失,这往往是一个网站最不愿意看到的情况,那么对于这样的情况而言,开发者们不断的努力,很快就想到了解决的方案,让在可视区域的图片立即加载进来,而让不在可视区域并且需要通过滚动条进行滚动显示的图片在图片滚动到可视区域内再显示出来,这就比一次性把所有的图片资源加载进来从而造成图片刷新较慢的用户体验好的多的多。
那么,图片延迟加载的技术具体如何实现呢?下面来做详细的介绍:
首先,定义图片为三列,一共有5行,具体代码如下:
里面用到的bootstrap的布局技术(当然,这不是重点),请看img标签中的src,一开始我们并没有给它具体的图片的资源路径,而是自己定义了一个属性 x-src,该属性的值是图片图片的资源路径,每一行的img都是如此,接下来,当页面载入的时候,我们使用jquery(当然,你想javascript原生的代码也可以,我这里只是为了省时间而已)来循环遍历每一个img,判断每一个图片是否在当前可视区域内,是则显示图片,否则稍后处理,这里需要知道三个数据:
注:因为我所写的是当图片的一半进入的浏览器的可视区域内才将这张图片进行加载,所以需要第三个数据,这个看个人的需求是什么, 如果你的需求是图片只要已进入可视区域内就加载,可直接忽略第三个数据!!!!
1:浏览器可视区域的高度
2:图片相对于文档的偏移量(这里只需要高度上的偏移量)
3:图片元素本身的高度
如果图片先对于文档的偏移量+图片元素本身的高度的一半 < 浏览器可视区域的高度,即表明图片已经有一半进入的可视区域了,那么我就应该要把这张图片加载进来了,可是img标签的src是为空的,x-src的值才是图片的资源路径,这个时候就需要用jquery将img 标签的x-src值传给src,从而将图片加载进来,具体实现代码如下:
具体的效果如下:
你可以在控制台看到,虽然我们有5行图片,每行有3列,但加载进来的图片只有第一列(图片高度有超出一半的img才会加载图片的资源进来),其他的都没有加载进来,这就使得图片的刷新会很快出现效果,那么接下来,用户需要看到更多的图片,这个时候需要进行滚动条往下滚动,去刷新更多的图片,那么这个时候我们除了上述的3个数据之外,还需要知道当前滚动条滚动的距离,如果:
图片先对于文档的偏移量+图片元素本身的高度的一半 < 浏览器可视区域的高度 + 当前滚动条滚动的距离,那么表明当前图片已经在可视区域内,并且图片有一半以上的高度是在可视区域内,那么将图片进行加载进来,具体代码如下:
具体效果如下:
在控制台你可以看到,随着滚动条的滚动,加载进来的图片由原来的三张变成了现在的六张,滚动条不断的往下滚动,图片就会不断的加载进来,从而得到更好的用户体验。
这就是图片延迟加载的具体实现,是不是觉得图片的炫酷,如果你想自己看下具体的实现效果,可以点击我的网址进行查看:
http://meichao.sinaapp.com/show.html
原文链接:http://www.gbtags.com/gb/share/6366.htm?
页打开速度慢意味着浏览器在使用浏览器访问网页时无法以正常速度打开网页。可能的原因不仅仅是网站慢,或者网速慢,还有浏览器有问题等问题。在这里中歌便详细告诉你。
网页打开缓慢的几个原因:
第一个原因:网页本身有问题。
网页css加载错误,网站系统中毒,或者一些大文件、图片等。在网页上,或者网站设计的问题会让网页慢慢打开。
第二个原因:网速有问题。
网速,比如你正在下载,或者其他电脑和手机正在占用网络,或者你的宽带线路问题等。,可能会导致网页变慢。
第三个原因:电脑卡住了。
电脑卡顿的情况很多,比如硬盘读写问题、内存卡顿、系统问题等。,这可能会导致网页打开太慢。
第四个原因:浏览器问题。
如果浏览器有解析问题,会导致网页打开缓慢。比如浏览器版本比较旧,或者网页中一些不常见的标签和元素无法正常解析,也会导致网页打开速度变慢。
有些原因可以自己解决,比如网速慢。您可以通过关闭占用网络速度的程序和网页来提高网络速度。电脑卡住了。也可以通过优化系统,提高硬件运行速度,包括浏览器问题,来提高速度。您也可以重新安装或更换浏览器。但是,如果网页本身有问题,访客是无法解决的。
*请认真填写需求信息,我们会在24小时内与您取得联系。