自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

jQuery圖片延遲加載技術的應用

開發(fā) 后端
其實我們做頁面布局就相當于砌墻師傅在完成一堵墻的施工。我們在設計頁面的時候,假如有很多相同的DIV,裝載不同的內(nèi)容,這些DIV都使用float:left,如果不限制這些DIV的高度,頁面布局可能會出現(xiàn)砌墻架空的現(xiàn)象。

我們使用新浪微博的時候,在“微博精選”頁面里可以看到大量的微博信息。該頁面信息主要是以圖片配文字說明,頁面使用了自適應網(wǎng)格布局即砌墻效果,圖片加載技術,以及滾動加載內(nèi)容技術。本文先介紹砌墻效果。

其實我們做頁面布局就相當于砌墻師傅在完成一堵墻的施工。我們在設計頁面的時候,假如有很多相同的DIV,裝載不同的內(nèi)容,這些DIV都使用float:left,如果不限制這些DIV的高度,頁面布局可能會出現(xiàn)砌墻架空的現(xiàn)象。點擊這里查看效果,而經(jīng)過布局優(yōu)化后的頁面布局效果大不一樣,請看DEMO。

查看演示DEMO 下載源碼

本文使用David DeSandro寫的一個頁面布局插件Masonry,該插件基于jQuery庫,提供很多參數(shù)和方法,可以根據(jù)不同的需求定制不同的效果。

XHMTL

首先是要引入jQuery庫和Masonry插件。

  1. <script type="text/javascript" src="jquery.js"></script> 
  2. <script type="text/javascript" src="jquery.masonry.min.js"></script>  

我們仿照新浪微博構建一個html頁面,DIV#container放置多個相同的DIV.photo。

  1. <div id="container">   
  2.       <div class="photo">   
  3.          <a href="#"><img src="images/02.jpg" alt="" /></a>   
  4.          <p><a href="#">菓小菓</a>:隨時都要賣,還要又又美味</p>   
  5.       </div>   
  6.       .....N個photo...   
  7. </div>   

CSS

  1. #container{width:780pxmargin:10px auto}   
  2. .photo{float:leftwidth:205pxmargin:10pxpadding:10pxborder:1px solid #d3d3d3;   
  3.  background:#f7f7f7;-moz-border-radius:4px;-khtml-border-radius: 4px;-webkit-border-radius: 4px;    
  4.  border-radius:4px;}   
  5. .photo img{width:205px}   
  6. .photo p{line-height:20pxmargin:4px auto}   

jQuery

  1. $(function(){   
  2.   $('#container').masonry({   
  3.     itemSelector : '.photo',   
  4.     columnWidth : 247   
  5.   });   
  6. });   

調(diào)用masonry插件,配置參數(shù)itemSelector對應的是class為photo的div,columnWidth為247,columnWidth的值是由.photo的寬度+padding*2+margin*2+border*2得到的。

上面只介紹砌墻布局,接下來結合本文把圖片加載技術和滾屏加載技術進行介紹。

#p#

我們在瀏覽圖片量非常大的頁面時,像淘寶商城商品展示、必應圖片搜索這類網(wǎng)站,圖片的加載非常流暢,其中就應用了圖片延遲加載技術。本文講解Lazyload圖片加載插件,當我們打開頁面時,首先在屏幕可視區(qū)域加載完圖片,隨著向下滾動頁面,圖片會陸續(xù)加載,從而提升了頁面打開速度。

Lazyload是一款基于jQuery的插件,在要顯示大量圖片的頁面,圖片是按需加載的,只在瀏覽器可視區(qū)內(nèi)加載圖片,當用戶使用滾動條下拉時,后面的圖片才會繼續(xù)加載,從某種意義上講,這種技術減少了服務器的負載。您可以到Lazyload官網(wǎng)下載***的版本:http://www.appelsiini.net/projects/lazyload

查看演示DEMO

XHTML

首先載入jquery庫和lazyload插件:

  1. <script type="text/javascript" src="jquery.js"></script>   
  2. <script type="text/javascript" src="jquery.lazyload.js"></script>   

在body中需要放置圖片的區(qū)域放置多個要顯示的圖片。圖片越多效果越明顯。

  1. <img src="images/blank.gif" data-original="images/01.jpg" width="205" height="188" alt="" />  

注意,每張圖片的src屬性對應的是一張預定義的圖片,就是再真正的圖片還沒加載的時候的替代圖片,我們通常使用1x1的blank.gif圖片。真正的圖片是由屬性data-original指定的,然后還需要設置圖片的寬度和高度。

jQuery

  1. $(function(){   
  2.   $("img").lazyload({   
  3.        effect : "fadeIn"   
  4.   });   
  5. });   

和許多插件使用一樣,只需要在元素上調(diào)用lazyload()即可,現(xiàn)在你就可以看到效果了。Lazyload同樣提供了多個參數(shù)可設置不同的效果。

threshold:靈敏度,即可以通過設置靈敏度來控制圖片的加載,如設置為200,即200像素前加載圖片,默認為0,即到達圖片邊界時才加載。

event:綁定事件,即可以通過綁定click、mouseover或者任意自定義事件來觸發(fā)圖片的加載。默認是當用戶滾動到圖片窗口時觸發(fā)圖片加載。

effect:設置效果,即可以設置圖片加載時的特效,如fadeIn,默認是show。

您還可以設置一個容器里的圖片橫向或縱向滾動加載效果,不過這個用的少,詳情請查看lazyload官網(wǎng):http://www.appelsiini.net/projects/lazyload

原文鏈接:http://www.helloweba.com/view-blog-151.html

責任編輯:張偉 來源: Helloweba
相關推薦

2015-08-25 10:28:38

前端圖片延遲加載

2009-09-25 10:17:21

Hibernate延遲

2021-02-06 14:25:29

Java延遲加載代碼

2012-08-15 11:36:13

Hibernate

2011-11-24 21:03:10

ibmdw

2011-03-17 10:37:07

JavaScript

2009-09-25 10:47:25

Hibernate延遲

2009-09-24 11:41:46

Hibernate延遲

2009-06-17 11:18:02

Hibernate延遲

2022-12-02 08:00:00

JavaScriptAstro前端

2009-09-28 09:40:28

Hibernate集合延遲加載

2021-05-08 09:49:07

JavaScript延遲加載

2011-04-27 09:22:28

C#延遲加載

2023-06-29 07:48:35

異步加載JavaScript

2009-09-28 09:56:53

Hibernate屬性

2009-07-02 09:39:37

Hibernate延遲

2021-08-01 07:58:58

Vue 加載組件

2024-04-19 00:47:07

RabbitMQ消息機制

2015-10-08 10:58:51

圖片懶加載

2009-09-09 09:48:43

Linq延遲加載
點贊
收藏

51CTO技術棧公眾號

業(yè)務
速覽
在線客服