Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[求助] 高手懂程序的进来看下子,瀑布流代码的问题。

[复制链接]
大劫案 发表于 2013-2-10 21:03:45 | 显示全部楼层 |阅读模式
我是想改 每页显示主题数 设置为30结果瀑布流是一下子显示出30,接着滚动条就会无限刷图片,那下一页都没有作用了,我不知道怎么改这么代码看不明白 高手赐教!
/*
参数
parent   放置瀑布流元素的容器,默认为 $("waterfall")
container  放置瀑布流的父容器,默认为 $("threadlist")
maxcolumn  最多多少列,默认为 0 不限制
space   图片间距,默认为 10
index   从第几张开始排列,默认为 0
tag   瀑布流元素的 tagName,默认为 li
columnsheight 存放列高度的数组

返回值
index   当前瀑布流已经排列了多少个图片
totalwidth  当前瀑布流的总宽度
totalheight 当前瀑布流的总高度
columnsheight 存放瀑布流列高的数组
*/
function waterfall(v) {
var v = typeof(v) == "undefined" ? {} : v;
var column = 1;
var totalwidth = typeof(v.totalwidth) == "undefined" ? 0 : v.totalwidth;
var totalheight = typeof(v.totalheight) == "undefined" ? 0 : v.totalheight;
var parent = typeof(v.parent) == "undefined" ? $("waterfall") : v.parent;
var container = typeof(v.container) == "undefined" ? $("threadlist") : v.container;
var maxcolumn = typeof(v.maxcolumn) == "undefined" ? 0 : v.maxcolumn;
var space = typeof(v.space) == "undefined" ? 10 : v.space;
var index = typeof(v.index) == "undefined" ? 0 : v.index;
var tag = typeof(v.tag) == "undefined" ? "li" : v.tag;
var columnsheight = typeof(v.columnsheight) == "undefined" ? [] : v.columnsheight;
var mincolumn = {"value": 0, "index": 0};
var totalelem = [];
var singlewidth = 0;
totalelem = parent.getElementsByTagName(tag);
if(totalelem.length > 0) {
  column = Math.floor((container.offsetWidth - space) / (totalelem[0].offsetWidth + space));
  if(maxcolumn && column > maxcolumn) {
   column = maxcolumn;
  }
  if(!column) {
   column = 1;
  }
  //如果存放列高的数组长度和列数不一致,说明需要重新计算每个元素的位置
  if(columnsheight.length != column) {
   columnsheight = [];
   for(var i = 0; i < column; i++) {
    columnsheight = 0;
   }
   index = 0;
  }
  singlewidth = totalelem[0].offsetWidth + space;
  totalwidth = singlewidth * column - space;
  for(var i = index, j = totalelem.length; i < j; i++) {
   mincolumn = columnsheight.waterfallMin();
   totalelem.style.position = "absolute";
   totalelem.style.left = singlewidth * mincolumn.index + "px";
   totalelem.style.top = mincolumn.value + "px";
   columnsheight[mincolumn.index] = columnsheight[mincolumn.index] + totalelem.offsetHeight + space;
   totalheight = Math.max(totalheight, columnsheight.waterfallMax());
   index++;
  }
  parent.style.height = totalheight + "px";
  parent.style.width = totalwidth + "px";
}
return {"index": index, "totalwidth": totalwidth, "totalheight": totalheight, "columnsheight" : columnsheight};
}
Array.prototype.waterfallMin = function () {
var min = 0;
var index = 0;
if(this.length > 0) {
  min = Math.min.apply({}, this);
  for(var i = 0, j = this.length; i < j; i++) {
   if(this == min) {
    index = i;
    break;
   }
  }
}
return {"value": min, "index": index};
}
Array.prototype.waterfallMax = function () {
return Math.max.apply({}, this);
}
ymb371237509 发表于 2013-4-22 15:58:42 | 显示全部楼层
什么情况  
回复

使用道具 举报

小小会变大 发表于 2013-4-22 22:51:06 | 显示全部楼层
终于抢到前排了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-9-22 04:12 , Processed in 0.105102 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表