原生js實現(xiàn)移動端瀑布流式代碼示例
更新時間:2015年12月18日 10:15:26 作者:zhiqiang21
這篇文章主要為大家分享了原生js實現(xiàn)移動端瀑布流式代碼示例,對瀑布流布局感興趣的小伙伴們可以參考一下
瀑布流布局已成為當今非常普遍的圖片展示方式,無論是PC還是手機等移動設備上。最近使用到了“懶加載”,現(xiàn)在更新一般,因為平時主要使移動端的開發(fā)所以庫文件使用的是zepto.js 。當然也可以和jQuery 通用。
代碼如下:
function loadImgLazy(node) {
var lazyNode = $('[node-type=imglazy]', node),
mobileHeight, lazyOffSetHeight, tempHeight, currentNodeTop, imgObject,
imgDataSrc, localUrl;
localUrl = location.href;
// 獲取當前瀏覽器可視區(qū)域的高度
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 動態(tài)替換節(jié)點中的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');
}
}
});
});
};
/**
* 首屏判斷屏幕上是否出現(xiàn)imglazy節(jié)點,有的話就加載圖片
* @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;
};
}
以上所述就是本文給大家分享的全部內(nèi)容了,希望能夠?qū)Υ蠹沂炀毷褂胘avascript有所幫助。
相關文章
JavaScript統(tǒng)計數(shù)組中相同的數(shù)量的方法總結
在JavaScript中,我們經(jīng)常需要對數(shù)組中對象的屬性進行統(tǒng)計。在本文中,我們將介紹如何使用JavaScript來實現(xiàn)這一功能,文中有詳細的代碼示例,需要的朋友可以借鑒參考2023-05-05
JS Generator 函數(shù)的含義與用法實例總結
這篇文章主要介紹了JS Generator 函數(shù)的含義與用法,結合實例形式總結分析了JS Generator 函數(shù)基本含義、用法及操作注意事項,需要的朋友可以參考下2020-04-04

