博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
瀑布流布局
阅读量:5097 次
发布时间:2019-06-13

本文共 3399 字,大约阅读时间需要 11 分钟。

组件:

$.fn.layout = function(params){        return this.each(function(){            var options = $.extend({width:100,lineNum:3,defaultData:'had'},params),                $self = $(this);            var layout = {                width : options.width,                height : [],                end : false,                init : function(){                    this.setHeightArray();                    this.bind();                    if(options.defaultData == 'had'){                        this.append($self.children(),true);                    }else{                        this.getData();                    }                                },                getData : function(){                    var me = this;                    if($self.next('.loading').length <= 0){                        $self.after('
加载更多数据
') } $self.next('.loading').show() $.getJSON(options.url,{},function(d){ me.append(d.list) },'json') }, append : function(data,bool){ if(data.length > 0){ $self.next('.loading').hide() for(var i = 0 ,len = data.length; i < len; i++){ var d = $(data[i]), height = 0; if(!bool){ $self.append(d); } height = d.outerHeight(true); var pos = this.getPos(height) d.css({top:pos.top,left:pos.left}).fadeIn(); $self.height(pos.height); } }else{ $self.next('.loading').html('没有更多数据').show() this.end = true; } }, setHeightArray : function(){ for(var i = 0; i < options.lineNum; i ++){ this.height.push(0) } }, getPos : function(height){ var min = Math.min.apply(null, this.height), index = $.inArray(min,this.height), left = index * this.width, top = min; this.height[index] = this.height[index] + height; return {left : left , top : top, height : Math.max.apply(null, this.height)} }, bind : function(){ var body = document.body, doc = document.documentElement, me = this; $(window).on('scroll',function(){ if(me.end) return; var scrollHeight = Math.max(body.scrollHeight,doc.scrollHeight), scrollTop = Math.max(body.scrollTop,doc.scrollTop); clientHeight = doc.clientHeight; if(scrollHeight < scrollTop + clientHeight + 300){ me.getData() } }) } } layout.init() }) }

调用方式:

$(".list").layout({

  width:200,//单列的宽度
  lineNum:3,//一列展示几排
  url:''
})

转载于:https://www.cnblogs.com/xiaohui108/p/3667267.html

你可能感兴趣的文章
Java IO(Properties/对象序列化/打印流/commons-io)
查看>>
sql 存储过程 递归
查看>>
【大话存储II】学习笔记(2章), SSD
查看>>
SQLHelp sql数据库的DAL
查看>>
阅读学术论文的心得体会from小木虫
查看>>
Python——Message控件
查看>>
多线程下单例模式:懒加载(延迟加载)和即时加载
查看>>
从 fn_dbLog 解析操作日志(补充update)
查看>>
JavaEE 数据库随机值插入测试
查看>>
this
查看>>
判断对象类型 type()
查看>>
Php函数之end
查看>>
腾讯AB题
查看>>
C# 实现冒泡算法--不一定效率,但很容易理解
查看>>
如何开发AR增强现实应用与产品
查看>>
C++中遍历lua table
查看>>
JSP 9 大内置对象详解
查看>>
Android Spinner 绑定键值对
查看>>
Lambda 动态表达式(排序)
查看>>
IO流BufferedReader------BufferedWriter 高效缓冲区
查看>>