瀑布流网页 position: absolute下方div重叠

问题描述

我做了瀑布流网页最外层父DIVwidth:1000px;height:100%;display:blockULposition:relative;width:100%;margin:0auto内层子LIposition:absolute;width:235px;height:auto;overflow:hidden;最下方width:100%;height:430px;padding:0;margin:0;子层li设定了position:absolute,是为了让他因图文高度不同而有所层次,产生瀑布流效果但页面下方有一个footerdiv,包夹了网站工具和宣告,因为上方position:absolute,浮动在上面,父层不晓得他的高度,因此footer重叠到最上方了!因为我有很多页面要共用此css和js,每一页图文高度都无法确认,所以我不行在父层设定高度,请问是否有方法让网页计算载入图文的高度,然后传送给父层DIV,这样FOOTER就不会重叠了?页码如下:<divclass"itn_ccbox"><ulid="lin_box"><li><divid="itn_box"><imgsrc="1.jpg"width="235"></div><divclass="title">标题</div><divclass="price">xxx元起</div></li><li><divid="itn_box"><imgsrc="1.jpg"width="235"></div><divclass="title">标题</div><divclass="price">xxx元起</div></li></ul></div><divclass="footer_box"></div>js页码如下:varmargin=15;varli=$("#lin_boxli");varli_W=li[0].offsetWidth+margin;functionliuxiaofan(){varh=[];varn=3for(vari=0;i<li.length;i++){li_H=li[i].offsetHeight;if(i<n){h[i]=li_H;li.eq(i).css("top",0);li.eq(i).css("left",i*li_W);}else{min_H=Math.min.apply(null,h);minKey=getarraykey(h,min_H);h[minKey]+=li_H+margin;li.eq(i).css("top",min_H+margin);li.eq(i).css("left",minKey*li_W);}}}functiongetarraykey(s,v){for(kins){if(s[k]==v){returnk;}}}window.onload=function(){liuxiaofan();};window.onresize=function(){liuxiaofan();};再麻烦大家协助我帮我解答谢谢

解决方案

解决方案二:
window.onload=function(){onloadImages("container","box");}window.onscroll=function(){if(dongtaitianjia("container","box")){varimgData={"data":[{"src":"1.jpg"},{"src":"2.jpg"},{"src":"3.jpg"},{"src":"4.jpg"},{"src":"5.jpg"},{"src":"6.jpg"},{"src":"7.jpg"},{"src":"8.jpg"},{"src":"9.jpg"}]}varcontainerDiv=document.getElementById("container");//获取id=“container”的divfor(vari=0;i<imgData.data.length;i++){varboxDiv=document.createElement("div");//动态创建div标签boxDiv.className="box";//动态设置div的class="box"containerDiv.appendChild(boxDiv);//动态添加containerDiv子节点varborderImgDiv=document.createElement("div");//动态创建div标签borderImgDiv.className="border_img";//动态设置div的class="border_img"boxDiv.appendChild(borderImgDiv);//动态添加boxDiv子节点varboxImg=document.createElement("img");//动态创建img标签boxImg.src="images/"+imgData.data[i].src;borderImgDiv.appendChild(boxImg);//动态添加boxDiv子节点}onloadImages("container","box");}}//判断是否要加载内容functiondongtaitianjia(parent,box){varcontainerChilder=document.getElementById(parent);//获取container下的集合varboxList=containerChilder.getElementsByClassName(box);//获取所有的.box集合varlastBoxOffsetTop=boxList[boxList.length-1].offsetTop;//最后一个.box集合元素的offsetTopvarpingmuHeight=document.documentElement.clientHeight||document.body.clientHeight;//内容区的高度varscrollHeight=document.documentElement.scrollTop||document.body.scrollTop;//滚动的高度if(lastBoxOffsetTop<pingmuHeight+scrollHeight){returntrue;}else{returnfalse;}}functiononloadImages(parent,box){varcontainerChilder=document.getElementById(parent);//获取container下的集合varboxList=containerChilder.getElementsByClassName(box);//获取所有的.box集合varnum=Math.floor(document.documentElement.clientWidth/boxList[0].offsetWidth);//得到一行能放几张图片containerChilder.style.cssText="width:"+num*boxList[0].offsetWidth+"px;margin:0auto;"//设置宽度,居中varboxHeightArray=[];//第一行.box集合高度的集合for(vari=0;i<boxList.length;i++){if(i<num){boxHeightArray.push(boxList[i].offsetHeight);//第一行.box的高度集合}else{varminArrayHeight=Math.min.apply(null,boxHeightArray);//获取集合中的最小值,也就是高度最小的那个varminHeightIndex=getMinHeightArray(boxHeightArray,minArrayHeight);//获取高度最小的那个.box集合位置boxList[i].style.position="absolute";//设置绝对定位boxList[i].style.left=boxList[minHeightIndex].offsetLeft+"px";boxList[i].style.top=minArrayHeight+"px";boxHeightArray[minHeightIndex]=boxHeightArray[minHeightIndex]+boxList[i].offsetHeight;//把集合中最矮的加上放在下面的元素的高度,避免所有的元素都挤在一起}}}//获取高度最小的那个.box集合位置functiongetMinHeightArray(array,minHeight){for(vari=0;i<array.length;i++){if(array[i]==minHeight){returni;}}}

*{margin:0;padding:0;}#container{position:relative;}.box{padding:5px;float:left;}.border_img{border:1pxsolid#ccc;border-radius:5px;box-shadow:005px#ccc;padding:5px;}.border_imgimg{width:190px;height:auto;}

<!DOCTYPEhtml><htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/><title>瀑布流</title><linkhref="css/pubuliu.css"rel="stylesheet"type="text/css"/><scriptsrc="js/pubuliu.js"></script></head><body><divid="container"><divclass="box"><divclass="border_img"><imgsrc="images/1.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/2.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/3.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/4.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/5.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/6.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/7.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/8.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/9.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/1.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/1.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/2.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/3.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/4.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/5.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/6.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/7.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/8.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/9.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/1.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/1.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/2.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/3.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/4.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/5.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/6.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/7.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/8.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/9.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/1.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/1.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/2.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/3.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/4.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/5.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/6.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/7.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/8.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/9.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/1.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/1.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/2.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/3.jpg"/></div></div><divclass="box"><divclass="border_img"><imgsrc="images/4.jpg"/></div></div></div></body></html>

解决方案三:
哇!太感谢您!帮了大忙回覆速度快又准确谢谢让我上了一堂当(弯腰)

时间: 2024-11-08 17:29:22

瀑布流网页 position: absolute下方div重叠的相关文章

waterfall瀑布流网页实现的两种设计方案Masonry与KISSY

waterfall瀑布流网页实现的设计方案一:Masonry waterfall 瀑布流网页实现的设计方案一:Masonry(含loading几次后出现分页) 瀑布流设计早就不是什么新鲜的东西了,现在网上基于瀑布流的网页非常常见,这种设计能给浏览器者更直接更有效率的浏览体验. 那么我们可以如何从前端.后端配合去实现这种效果呢? 其实目前已有很多基于jquery或原生态javascript的waterfall插件,我们只需要根据api进行运用,既可做到不错的瀑布流网页. 但是在这些插件中,做得兼容

浅谈瀑布流网页实现中遇到的问题和解决方法

  先上Demo 瀑布流排序 : http://cued.xunlei.com/demos/publ/demo1.html 瀑布流+无限拖 http://cued.xunlei.com/demos/publ/demo2.html 随着pinterest的走红,瀑布流式的布局被越来越多的网站所使用,这种布局确实有很多好处,图片列表页有很强大的视觉感染力,而且还提高了用 户"发现好图"的效率.瀑布流的实现有很多种方式,之前淘宝UED有篇文章详细的介绍过各种方式的优劣.今天我们主要讨论一下绝

浅谈个人在瀑布流网页的实现中遇到的问题和解决方法

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 先上Demo 瀑布流排序 : http://cued.xunlei.com/demos/publ/demo1.html 瀑布流+无限拖 http://cued.xunlei.com/demos/publ/demo2.html 随着pinterest的走红,瀑布流式的布局被越来越多的网站所使用,这种布局确实有很多好处,图片列表页有很强大的视觉感

Pinterest采用瀑布流的方式网页设计

文章描述:浅谈个人在瀑布流网页的实现中遇到的问题和解决方法. 先上Demo 瀑布流排序 : http://cued.xunlei.com/demos/publ/demo1.html 瀑布流+无限拖 http://cued.xunlei.com/demos/publ/demo2.html 随着pinterest的走红,瀑布流式的布局被越来越多的网站所使用,这种布局确实有很多好处,图片列表页有很强大的视觉感染力,而且还提高了用户"发现好图"的效率.瀑布流的实现有很多种方式,之前淘宝UED有

Jquery瀑布流插件使用介绍_jquery

瀑布流布局浅析 浅谈个人在瀑布流网页的实现中遇到的问题和解决方法 折腾:瀑布流布局(基于多栏列表流体布局实现) javascript 瀑布流.各大瀑布流简析与建议 因为自己用jquery比较多,便萌生了把瀑布流做成插件的想法,图片就借用迅雷UED上的那些美图吧. 先看看Demo 把代码放出来吧 复制代码 代码如下: ;(function($){ var //参数 setting={ column_width:204,//列宽 column_className:'waterfall_column'

CSS 中 position:absolute 与 z-index 对层次结构影响

css 不使用 position 这种情况下每一层都遵循 HTML 定位规则,其中的 left,right,top,bottom 定位信息对其无效,z-index 也不会发挥作用因为没有层叠的情况出现. 2. 使用 absolute 如两个绝对定位对象的 z-index 属性具有同样的值,那么将依据它们在HTML文档中声明的顺序层叠. 2.1 未使用 z-index 这种情况下,依据它们在HTML文档中声明的顺序层叠,因为 z-index 在未设置的情况下,默认为 0 . <div id = &qu

用瀑布流的方式在网页上插入图片的简单实现方法_javascript技巧

当我们的网页需要插入很多图片的时候,为了美观,我们可以选择用瀑布流的方法插入图片 首先我们在body里面放入我们需要展示的图片 <div id="box"> <div class="dinwei"> <div class="pic"> <img src="image/1.jpg"> </div> </div> <div class="din

蘑菇街网页放弃“瀑布流”形式,移动端将推全平台即时通讯系统“沟通”

[摘要]蘑菇街网页将放弃"瀑布流"形式,移动端将推全平台即时通讯系统"沟通". 腾讯科技 月古 8月22日报道 昨天,国内女性时尚消费电商平台--蘑菇街,发布了全新的品牌战略,新品牌定位"买手街",并宣布涉足化妆品特卖,并将上线自有的支付系统. 与此同时,蘑菇街也对产品进行了更改.蘑菇街更新了LOGO的定义和产品导航设计,化繁为简.其中Web将放弃"瀑布流"形式,移动端上,蘑菇街推出全平台IM即时聊天系统"沟通&qu

Pinterest瀑布流的网页呈现方式有什么特点

如果是田字格,人的视觉需要从上到下.从左到右的逐块浏览--全部都看,然后大脑再筛选过滤--这更适合有目的性完整性的信息获取,比如在淘宝搜索一个商品时提供的列表或大图两种视图. 但是在一些随意性浏览发现的服务中,这种有点半强迫意味的田字格相当于增加了视觉和大脑的负担,会让原本随意性的浏览变得不随意. pinterest的信息特点决定了用户只能是大量.随意.快速.偶然性.蜻蜓点水式的信息获取,瀑布流对这种信息来说更加便利. 这种瀑布流的内容呈现是点水式随意浏览的极致方案. 它的采用前提有三个: 一是