1. 程式人生 > >“瀑布流式”圖片懶載入程式碼示例

“瀑布流式”圖片懶載入程式碼示例

最近專案使用到了“懶載入”,現在更新一般,因為平時主要使移動端的開發所以庫檔案使用的是zepto.js 。當然也可以和jQuery 通用。

程式碼如下:

/**
 * Created by zhiqiang on 2015/10/14.
 * [email protected]
 * 圖片的懶載入
 **/
function loadImgLazy(node) {
    var lazyNode = $('[node-type=imglazy]', node),
        mobileHeight, lazyOffSetHeight, tempHeight, currentNodeTop, imgObject,
        imgDataSrc, localUrl;

    localUrl = location.href;
    // 獲取當前瀏覽器可視區域的高度
mobileHeight = $(window).height(); return function(co) { var conf = { 'loadfirst': true, 'loadimg': true }; for (var item in conf) { if (item in co) { conf[item] = co[item]; } } var that = {}; var
_this = {}; /** * [replaceImgSrc 動態替換節點中的src] * @param {[type]} tempObject [description] * @return {[type]} [description] */ _this.replaceImgSrc = function(tempObject) { var srcValue; $.each(tempObject, function(i, item)
{
imgObject = $(item).find('img[data-lazysrc]'); imgObject.each(function(i) { imgDataSrc = $(this).attr('data-lazysrc'); srcValue = $(this).attr('src'); if (srcValue == '#') { if (imgDataSrc) { $(this).attr('src', imgDataSrc); $(this).removeAttr('data-lazysrc'); } } }); }); }; /** * 首屏判斷螢幕上是否出現imglazy節點,有的話就載入圖片 * @param {[type]} i) { currentNodeTop [description] * @return {[type]} [description] */ _this.loadFirstScreen = function() { if (conf.loadfirst) { lazyNode.each(function(i) { currentNodeTop = $(this).offset().top; if (currentNodeTop < mobileHeight + 800) { _this.replaceImgSrc($(this)); } }); } }; //當載入過首屏以後按照佇列載入圖片 _this.loadImg = function() { if (conf.loadimg) { $(window).on('scroll', function() { var imgLazyList = $('[node-type=imglazy]', node); for (var i = 0; i < 5; i++) { _this.replaceImgSrc(imgLazyList.eq(i)); } }); } }; that = { replaceImgSrc: _this.replaceImgSrc(), mobileHeight: mobileHeight, objIsEmpty: function(obj) { for (var item in obj) { return false; } return true; }, destory: function() { if (_this) { $.each(_this, function(i, item) { if (item && item.destory) { item.destory(); } }); _this = null; } $(window).off('scroll'); } }; return that; }; }

相關推薦

瀑布圖片載入程式碼示例

最近專案使用到了“懶載入”,現在更新一般,因為平時主要使移動端的開發所以庫檔案使用的是zepto.js 。當然也可以和jQuery 通用。 程式碼如下: /** * Created by zhiqiang on 2015/10/14. * [email&

用jQuery實現瀑布及滾動載入(相容IE8)

上篇 js原生瀑布流並實現滾動懶載入(相容IE8) 講解了瀑布流的原理及滾動懶載入的原理,並用原生js實現了效果,那麼原生js必定有些繁瑣和麻煩,這一篇我們就換成jQuery,程式碼會簡潔很多,思路和原理我就不贅述了,如果想看的話,移步 js原生瀑布流並實

30行Javascript程式碼實現圖片載入

小編推薦:Fundebug專注於JavaScript、微信小程式、微信小遊戲,Node.js和Java實時BUG監控。真的是一個很好用的bug監控費服務,眾多大佬公司都在使用。 前言 頁面太多圖片?那麼請你花20分鐘去優化一下頁面的效能 講道理,當你為圖片的src賦值時,D

UICollectionView(純程式碼方式)實現帶上下拉重新整理的瀑布

瀑布流(WaterFlow)是專案開發過程中的常見佈局,有關於瀑布流(WaterFlow)的實現方式:在UICollectionView未出現之前,瀑布流的實現多半是採用UIScrollView或是UITableView。對於我們這種用慣了表檢視的人來說,UIC

RecycleView 瀑布 及glide網路載入圖片

package com.example.recycleview_jinjie; //第一步 import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.s

RecyclerView高仿IOS照片瀑布展示圖片效果

摘要: 蘋果有自己的元件能夠很快捷方便的實現這種類似瀑布流但是比瀑布流更為複雜的照片展示效果,當時接到這個需求時我也是一臉懵逼,而且查閱很多資料以及請教一些同行都沒有找到更好的idea,以此在與同事共同商討之下最終確立設計方式,此佈局能夠自動根據圖片大小進行智慧尋找更合適的

原生javascript圖片載入效果程式碼

原理是先獲取頁面所需懶載入的所有圖片物件,然後分別計算圖片距離頂部的距離是否小於螢幕可見高度+頁面滾動高度,即元素是否從下滾動到眼球可見位置,如果小於,那麼將自定義的data-src屬性中的值(即圖片的

佔位圖和圖片載入專案實戰詳解

佔位圖(兜底圖): 真實圖片太大還沒有載入完之前先用一張佔位圖表示這個位置將來會有圖片或者說明這個位置是有圖片的但是不知道什麼原因真正的圖片沒有加載出來使用者只能看到這張佔位圖; 什麼是圖片懶載入: 懶載入也就是延遲載入,當訪問一個頁面的時候,先把img元素渲染出來,但是不給它真

vue 圖片載入 vue-lazyload

圖片懶載入 在實際的專案開發中,我們通常會遇見這樣的場景:一個頁面有很多圖片,而首屏出現的圖片大概就一兩張,那麼我們還要一次性把所有圖片都加載出來嗎?顯然這是愚蠢的,不僅影響頁面渲染速度,還浪費頻寬。這也就是們通常所說的首屏載入,技術上現實其中要用的技術就是圖片懶載入--到可視區域再載入。 vue中經常使

圖片載入的步驟

1、百度搜索v-lazy-npm 開啟首頁,然後在windows的cmd裡輸入npm install vue-lazyload --save (下載圖片懶載入的外掛) 2、複製下面程式碼到 main.js中 (注①:將有註釋刪掉的那句刪掉)(注②:粗體的那一句話、loading代表載入中的意

原生JS的(可視區域,向上滾動向下滾動兩種)圖片載入

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style>

基於Jquery的(可視區域,向上滾動向下滾動兩種)圖片載入

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style>

手機端圖片載入

圖片懶載入是手機內嵌h5開啟網頁速度的優化方式之一,今天我就接受如何用最少的程式碼解決手機端的圖片懶載入問題 因為公司使用的h5都是vue做的,但是其他框架使用方式是一樣的 當後臺資料相應後,一般我們會在html這麼操作 <div class="image" v-for="item in a

如何結合外掛 vue-lazyload 來簡單實現圖片載入

外掛地址:https://www.npmjs.com/package/vue-lazyload; 一、使用場景: 在專案中有很多條數的資訊,且圖片很多的時候,不需要一次把整個頁面的圖片都載入完,而是在滾動到出現在螢幕才去載入該圖片的時候就可以用這個外掛。 二、簡單使用步驟: 1. 在專案裡面 npm

支援BetterScroll和iScroll滾動外掛的圖片載入的外掛

  做H5長頁面,內容都是一個個圖片。優化頁面速度,使用了圖片懶載入外掛。   下面我安利一款,我在網上尋找到這個懶載入外掛zhanyouwei/m-lazy,是支撐BetterScroll和iScroll滾動外掛的。 專案地址:https://github.com/zhanyou

圖片載入 滾動載入圖片載入)實現原理

滾動載入圖片(懶載入)實現原理   本文主要通過以下幾方面來說明懶載入技術的原理,個人前端小菜,有錯誤請多多指出 一、什麼是圖片滾動載入?   通俗的講就是:當訪問一個頁面的時候,先把img元素或是其他元素的背景圖片路徑替換成一張大小為1*1px圖片的路徑(這樣就

layui圖片載入-loading佔位圖

前言     使用layui的圖片懶載入,發現未載入的圖片沒有loading佔位圖,顯示的是裂圖,看著不是很好。找了一些解決方法我統一記錄一下。 layui圖片懶載入使用方法 layui.use(’flow’, function(){ var flow = l

vue中使用圖片載入vue-lazyload外掛指南

使用方式 使用vue的 vue-lazyload 外掛 外掛地址: https://www.npmjs.com/package/vue-lazyload Installation 安裝方式 1. np

圖片載入 -- 爬蟲

圖片懶載入 什麼是圖片懶載入?   圖片懶載入是一種網頁優化技術。圖片作為一種網路資源,在被請求時也與普通靜態資源一樣,將佔用網路資源,而一次性將整個頁面的所有圖片載入完,將大大增加頁面的首屏載入時間。為了解決這種問題,通過前後端配合,使圖片僅在瀏覽器當前視窗內出現時才載入該圖片,達到減少首屏圖片請求數的

vue-lazyload 圖片載入

第一步npm install  vue-lazyload --save 然後在main.js裡引入 import VueLazyLoad from 'vue-lazyload' 然後使用這個VueLazyLoad Vue.use(VueLazyLoad,{ loadin