基于jquery實現(xiàn)瀑布流布局
更新時間:2020年06月28日 09:17:06 投稿:lijiao
這篇文章主要介紹了基于jquery實現(xiàn)瀑布流布局的相關資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家介紹了基于jquery實現(xiàn)瀑布流布局的關鍵代碼,分享給大家供大家參考,具體內容如下
效果圖:
具體代碼:
使用jquery-1.8.3.min.js,waterfall.js代碼如下:
$( window ).load( function(e){ waterfall(); var dataInt = { 'data': [{ 'src': '1.jpg' },{ 'src': '2.jpg' },{ 'src': '3.jpg' },{ 'src': '4.jpg' }]}; $(window).scroll(function(){ if( checkscrollside() ){ $.each( dataInt.data, function(index,value){ var $oPin = $('<div>').addClass('pin').appendTo( $("#main") ); var $oBox = $('<div>').addClass('box').appendTo( $oPin ); $('<img>').attr('src','./images/' + $(value).attr('src')).appendTo( $oBox ); }); waterfall(); } }); function waterfall(){ var $aPin = $( "#main>div" ); var iPinW = $aPin.eq(0).outerWidth(); var num = Math.floor( $(window).width() / iPinW ); $( "#main" ).css({ 'width' : iPinW * num, 'margin' : '0 auto' }); var pinHArr = []; $aPin.each(function( index, value ){ var pinH = $aPin.eq( index ).height(); if( index < num ){ pinHArr[ index ] = pinH; }else{ var minH = Math.min.apply( null, pinHArr ); var minHIndex = $.inArray( minH, pinHArr ); $( value ).css({ 'position': 'absolute', 'top': minH + 15, 'left': $aPin.eq( minHIndex ).position().left }); pinHArr[ minHIndex ] += $aPin.eq( index ).height() + 15; } }); } function checkscrollside(){ var $aPin = $("#main>div"); var lastPinH = $aPin.last().get(0).offsetTop + Math.floor( $aPin.last().height()/2); var scrollTop = $( window ).scrollTop(); var documentH = $( document ).height(); return (lastPinH < scrollTop + documentH ) ? true : false; } });
希望本文所述對大家學習有所幫助,謝謝大家的閱讀。
相關文章
基于jquery實現(xiàn)狀態(tài)限定編輯的代碼
基于jquery實現(xiàn)狀態(tài)限定編輯的代碼,需要的朋友可以參考下2012-02-02jQuery分頁插件jquery.pagination.js使用方法解析
這篇文章主要為大家詳細解析了jQuery分頁插件jquery.pagination使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-02-02解決Jquery load()加載GB2312頁面時出現(xiàn)亂碼的兩種方案
jquery的字符集是utf-8,load方法加載完GB2312編碼靜態(tài)頁面后,出現(xiàn)中文亂碼,可以通過將兩個頁面的編碼格式轉換成utf8的方法來解決,具體如下,感興趣的朋友可以參考下2013-09-09