成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

前端圖片延遲加載詳細講解

開發 前端
顯示在瀏覽器可視區域的圖片總是不能及時的刷出來,讓在可視區域的圖片立即加載進來,而讓不在可視區域并且需要通過滾動條進行滾動顯示的圖片在圖片滾動到可視區域內再顯示出來

顯示在瀏覽器可視區域的圖片總是不能及時的刷出來,讓在可視區域的圖片立即加載進來,而讓不在可視區域并且需要通過滾動條進行滾動顯示的圖片在圖片滾動到可視區域內再顯示出來

        原本是打算昨天昨天下午的時候就寫一篇關于前端圖片延遲加載的詳細技術的博客的,沒想到下午公司項目出現了一些問題,所以一直在改代碼進行調試,今天 白天一整天又在外面跑,回來已經傍晚了,剛吃完飯,就想著趕緊補上,這樣很多不懂這方面具體實現的小伙伴們也能早點學習經驗。

         前端頁面的用戶體驗對于一個網站來說是至關重要的,我們在訪問一些圖片量比較大的網站的時候,往往會有這樣的感受:顯示在我電腦 屏幕可視區域的圖片總是不能及時的刷出來,這就造成了對于一些沒有什么耐心的用戶而言,他們就不愿意多等下去,索性直接關閉了網站去看其他的網站,這就使 得本網站的用戶量的流失,這往往是一個網站最不愿意看到的情況,那么對于這樣的情況而言,開發者們不斷的努力,很快就想到了解決的方案,讓在可視區域的圖 片立即加載進來,而讓不在可視區域并且需要通過滾動條進行滾動顯示的圖片在圖片滾動到可視區域內再顯示出來,這就比一次性把所有的圖片資源加載進來從而造 成圖片刷新較慢的用戶體驗好的多的多。

         那么,圖片延遲加載的技術具體如何實現呢?下面來做詳細的介紹:

         首先,定義圖片為三列,一共有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個數據之外,還需要知道當前滾動條滾動的距離,如果:

                圖片先對于文檔的偏移量+圖片元素本身的高度的一半    <  瀏覽器可視區域的高度  + 當前滾動條滾動的距離,那么表明當前圖片已經在可視區域內,并且圖片有一半以上的高度是在可視區域內,那么將圖片進行加載進來,具體代碼如下:

        

        具體效果如下:

        

         在控制臺你可以看到,隨著滾動條的滾動,加載進來的圖片由原來的三張變成了現在的六張,滾動條不斷的往下滾動,圖片就會不斷的加載進來,從而得到更好的用戶體驗。

責任編輯:王雪燕 來源: 博客園
相關推薦

2009-09-09 09:48:43

Linq延遲加載

2011-07-06 16:15:46

iPhone 圖片

2012-06-05 10:22:45

jQuery

2023-06-29 07:48:35

異步加載JavaScript

2009-06-17 11:18:02

Hibernate延遲

2009-09-24 11:41:46

Hibernate延遲

2009-09-28 09:56:53

Hibernate屬性

2021-05-08 09:49:07

JavaScript延遲加載

2012-08-15 11:36:13

Hibernate

2009-09-25 17:03:29

Hibernate是什

2009-12-14 11:29:19

Linux查看命令

2010-04-29 10:15:01

Unix系統

2010-06-17 12:57:27

如何修復Grub

2009-09-25 10:17:21

Hibernate延遲

2009-09-25 10:47:25

Hibernate延遲

2009-09-27 17:23:16

Hibernate應用

2009-04-03 08:21:37

AndroidGoogle移動OS

2011-07-06 10:46:33

Xcode

2021-01-04 05:42:48

數倉模型設計

2009-12-21 11:22:37

Linux網絡操作命令
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人国产精品免费观看视频 | 日韩av在线一区二区 | 18性欧美| 国产成人在线视频 | 日本一区二区三区在线观看 | 国产精品揄拍一区二区 | 日日干夜夜草 | 99精品久久99久久久久 | 观看av | 一级特黄网站 | 国产成人精品综合 | 二区亚洲| 一区二区电影 | 久久aⅴ乱码一区二区三区 亚洲国产成人精品久久久国产成人一区 | 99视频入口 | 91网站在线看 | 91成人精品| 亚洲三区在线观看 | 国产精品久久久 | 在线观看视频一区二区三区 | 国产在线精品一区二区 | 亚洲五码久久 | 亚洲成人三级 | 户外露出一区二区三区 | 99热这里都是精品 | 精品国产乱码久久久久久蜜柚 | 中文字幕亚洲一区二区va在线 | 成人精品鲁一区一区二区 | 国产综合精品一区二区三区 | 欧产日产国产精品视频 | 欧美成人综合 | 精品久久久久久久久久久久 | 日韩欧美在线观看 | 久久精品免费观看 | 国产成人短视频在线观看 | 日韩精品一区在线 | 日韩精品久久久久久 | 精品麻豆剧传媒av国产九九九 | 日韩中文字幕网 | 亚洲精品一区二区三区蜜桃久 | 高清色|