基于jquery实现瀑布流布局
作者:bea
本文实例为大家介绍了基于jquery实现瀑布流布局的关键代码,分享给大家供大家参考,具体内容如下 效果图: 具体代码: 使用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':
本文实例为大家介绍了基于jquery实现瀑布流布局的关键代码,分享给大家供大家参考,具体内容如下
效果图:
具体代码:
使用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-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;
}
});
希望本文所述对大家学习有所帮助,谢谢大家的阅读。
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- js为什么不能正确处理小数运算?
- javascript从作用域链谈闭包
- 你有必要知道的25个JavaScript面试题
- JavaScript仿支付宝密码输入框
- js实现商城星星评分的效果
- 原生js配合cookie制作保存路径的拖拽
- 一种新的javascript对象创建方式Object.create()
- JavaScrip常见的一些算法总结
- 简单介绍JavaScript数据类型之隐式类型转换
- Bootstrap导航栏各元素操作方法(表单、按钮、文本)
- Bootstrap实现响应式导航栏效果
- 基于jQuery实现选取月份插件附源码下载
- Nodejs express框架一个工程中同时使用ejs模版和jade模版
- 浅析AngularJs HTTP响应拦截器
- Bootstrap实现默认导航栏效果
- Angularjs注入拦截器实现Loading效果
- AngularJS进行性能调优的7个建议
- 浅析AngularJS Filter用法
- jquery实现倒计时功能