宝哥软件园

JavaScript实现图片瀑布流和底部刷新

编辑:宝哥软件园 来源:互联网 时间:2021-09-06

瀑布流现在基本上是图片显示网页的标配,主要是为了适配图片和文字块的大小,使显示出的效果没有那么呆板实现这个功能首先要有html,css和射流研究…基础

首先先实现瀑布流

即下一行的图片放在上一行的凹下去的地方

基本的超文本标记语言代码如下

html lang=' en ' head meta charset=' UTF-8 '标题瀑布流/title link rel='样式表type=' text/CSS ' href=' CSS/style。CSS '!剧本不能用script/-script src=' http : js/app 1。js '/script/headdydiv id=' container ' div class=' box ' div class=' img _ box ' img src=' http : images/1。jpg '/div/div class=' box ' div class=' img _ box ' img src=' http 3360 images/2。jpg '/div/div class=' box ' div class=' img _ box '然后再写一下钢性铸铁

* { margin : 0pxpadding : 0px }/*容器为相对布局*/#容器{ position:relative}/*框向左浮动*/.box { padding:5px向左浮动:}/*加一些边框*/.img _ box { padd : 5pxborder :1 px固体# cccbox-shadow :0 0 5px # CCC;边界半径: 5px}/*宽度固定,高度自适应,使图片不变形*/.img _ box img { width : 150 pxh three : auto }接下来就是这次的核心,写射流研究…

//开始加载要执行的方法窗户。onload=function(){ imgLocation(' container ',' box ')} function imgLocation(parent,content){ var CP parent=document。getelementbyid(父级);var ccontent=getChildElement(CP父级,内容)//图片宽度var imgWidth=ccontent[0].offset with//每一行图片个数var cols=数学。楼层(文件。文档元素。客户端宽度/IMgwidth);//使宽度一定,内容居中cpparent。风格。CSS文本=' width : ' IMgwidth * cols ' px保证金:0自动';var box heightarr=[];for(var I=0;I content . lengthi){//获取第一行图片的高度if(icols){ BoxHeightArr[I]=c content[I].偏右;}else { //Math.min对数组要加上应用var min haut=Math。量滴应用(null,BoxHeightArr);var minIndex=GetMinhArthlocation(BoxHeightArr,minhArthy)//设为绝对布局使内容不随屏幕大小改变c内容[I]。风格。位置='绝对';内容。风格。top=最小h8 ' pxc内容[I]。风格。左=c内容[minIndex].offsetLeft ' px//该列的高度加上后添加进去图片高度box heightarr[minIndex]=box heightarr[minIndex]c content[I].offsetHeight } }}//获取最小高度的位置函数GetMinHightArr位置(BoxHeightArr,MinHightArr){ for(BoxHeightArr中的var I){ if(box heightarr[I]==minHightarr){ return I;} } }函数getChildElement(父,内容){ var content arr=[];//获取所有子元素var all content=parent。(var I=0)的getelementsbytagname(' * ';ialcontent . lengthi){//如果类名是包厢就添加进去if (allcontent[i]).类名==content){ content arr。推送(所有内容[I]);} }返回contentArr}这样就简单实现了瀑布流效果

接下来是下拉到底部自动刷新

主要是在滚动时监听是否到底部,到达差不多底部的位置就加载

添加以下代码即可

window . on scroll=function(){//var img data={ ' data ' 3360[{ ' src ' 3360 ' 2。jpg ' },{ ' src ' : ' 3。jpg ' },{ ' src ' : ' 4。jpg ' },{ ' src ' : ' 5。jpg ' },{ ' src ' 3360 ' 6。jpg ' } } if(check flag()){ var CP parent=document。getelement byid(' container ');for(var I=0);iimgdata。数据。长度(I){ var cccontent=文档。创建元素(' div ');ccnt。类名=' boxcparent。append child(ccnt nt nt);var box img=文档。创建元素(' div '):boximg。' img _ boxccnt。追加子项(框img);var img=文档。创建元素(' img '):img。src=' http 3360 images/' img数据。数据[一].src(中央支助事务厅);方框img。追加子级(img);} //唉哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟imgLocation('container ',' box ')函数检查标志(){ var cparent=document。getelement byid(' container ');var cccontent=get子元素(cparent," box ");//你好你好你好var lastcontentheight=ccnt content[ccnt nt。长度-1].offsettop/喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂var滚动顶部=文档。文档元素。向上滚动| |文档。尸体。滚动顶部;//你是谁var pageheight=document。文档元素。客户端高度| |文档。尸体。客户身高;//你好你好如果(lastcontentheight滚动顶部页面高度)true返回真的;}}唉呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀

朱塞佩朱塞佩朱塞佩朱塞佩,阿云阿云娜阿云娜阿云娜阿云娜阿云娜阿云娜阿云娜阿云娜阿云娜阿云娜阿云娜阿云娜阿云娜阿云娜阿云娜阿云娜阿云娜阿云娜阿云娜,吴亚玲吴亚玲吴亚玲。

更多资讯
游戏推荐
更多+