jQuery瀑布流效果
2015-09-11 00:00
621 查看
摘要: html和css部分在js原生效果里。
$(window).on('load',function(){
waterfall();
var dataInt={"data":[{"src":'1.jpg'},{"src":'2.jpg'},{"src":'3.jpg'},{"src":'4.jpg'},{"src":'5.jpg'},{"src":'6.jpg'}]};
$(window).on('scroll',function(){
if(checkScrollSlider){
$.each(dataInt.data,function(key,value){
var oBox=$('<div>').addClass('box').appendTo($('#main'));
var oPic=$('<div>').addClass('pic').appendTo($(oBox));
var oImg=$('<img>').attr('src','images/'+$(value).attr('src')).appendTo($(oPic));
})
waterfall();
}
})
});
function waterfall(){
var $boxs=$("#main>div");
var w=$boxs.eq(0).outerWidth();
var cols=Math.floor($(window).width()/w);
$("#main").width(w*cols).css('margin','0 auto')
var hArr=[];
$boxs.each(function(index,value){
var h=$boxs.eq(index).outerHeight();
if(index<cols){
hArr[index]=h;
}else{
var minH=Math.min.apply(null,hArr);
var minHIndex=$.inArray(minH,hArr);
$(value).css({
'position':'absolute',
'top':minH+'px',
'left':minHIndex*w+'px'
})
hArr[minHIndex]+=$boxs.eq(index).outerHeight();
}
})
}
function checkScrollSlider(){
var $lastBox=$('#main>div').last();
var lastBoxDis=$lastBox.offset().top+Math.floor($lastBox.outerHeight()/2);
var scrollTop=$(window).scrollTop();
var documentH=$(window).height();
return(lastBoxDis<scrollTop+documentH)?true:false;
}
$(window).on('load',function(){
waterfall();
var dataInt={"data":[{"src":'1.jpg'},{"src":'2.jpg'},{"src":'3.jpg'},{"src":'4.jpg'},{"src":'5.jpg'},{"src":'6.jpg'}]};
$(window).on('scroll',function(){
if(checkScrollSlider){
$.each(dataInt.data,function(key,value){
var oBox=$('<div>').addClass('box').appendTo($('#main'));
var oPic=$('<div>').addClass('pic').appendTo($(oBox));
var oImg=$('<img>').attr('src','images/'+$(value).attr('src')).appendTo($(oPic));
})
waterfall();
}
})
});
function waterfall(){
var $boxs=$("#main>div");
var w=$boxs.eq(0).outerWidth();
var cols=Math.floor($(window).width()/w);
$("#main").width(w*cols).css('margin','0 auto')
var hArr=[];
$boxs.each(function(index,value){
var h=$boxs.eq(index).outerHeight();
if(index<cols){
hArr[index]=h;
}else{
var minH=Math.min.apply(null,hArr);
var minHIndex=$.inArray(minH,hArr);
$(value).css({
'position':'absolute',
'top':minH+'px',
'left':minHIndex*w+'px'
})
hArr[minHIndex]+=$boxs.eq(index).outerHeight();
}
})
}
function checkScrollSlider(){
var $lastBox=$('#main>div').last();
var lastBoxDis=$lastBox.offset().top+Math.floor($lastBox.outerHeight()/2);
var scrollTop=$(window).scrollTop();
var documentH=$(window).height();
return(lastBoxDis<scrollTop+documentH)?true:false;
}
相关文章推荐
- jquery文本框改变事件
- jQuery源码之$.data()数据缓存
- jQuery学习笔记——弹出对话框
- jquery && ajax check username
- jQuery 的选择器
- jQuery的简单了解
- jquery操作select
- jQuery常用的元素查找方法总
- Jquery中替换节点的方法replaceWith()和replaceAll()
- jquery 判断checkbox是否选中
- JQuery绑定回车事件
- jquery获得下拉列表选中值和文本
- jQuery select年月日(生日)选择器
- jquery 异步调用方法中不能给全局变量赋值的原因及解决办法
- JQUERY 选择
- jquery插件之拖拽改变元素大小
- jquery的showLoading遇到的奇葩问题--正在查询
- 【jQuery】点击缩略图查看大图-imgbox
- JQuery select与radio的取值与赋值
- jquery ui各种验证代码