最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

javascript实现瀑布流动态加载图片

来源:懂视网 责编:小OO 时间:2020-11-27 19:35:08
文档

javascript实现瀑布流动态加载图片

本文实例为大家分享了js瀑布流加载效果,动态加载图片,供大家参考,具体内容如下:鼠标滚动事件,当鼠标滚动到下边,动态加载图片。1.HTML代码。<;<。DOCTYPE html>;<;html>;<;head>;<;meta charset=";UTF-8";>;<;title>;js实现瀑布流效果-动态加载图片<;/title>;<;link rel=";stylesheet";href=";css/waterfallflow.css";type=";text/css";/>;<;script src=";>;<;>。
推荐度:
导读本文实例为大家分享了js瀑布流加载效果,动态加载图片,供大家参考,具体内容如下:鼠标滚动事件,当鼠标滚动到下边,动态加载图片。1.HTML代码。<;<。DOCTYPE html>;<;html>;<;head>;<;meta charset=";UTF-8";>;<;title>;js实现瀑布流效果-动态加载图片<;/title>;<;link rel=";stylesheet";href=";css/waterfallflow.css";type=";text/css";/>;<;script src=";>;<;>。

这篇文章主要为大家详细介绍了javascript实现瀑布流动态加载图片原理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了js瀑布流加载效果,动态加载图片,供大家参考,具体内容如下

鼠标滚动事件,当鼠标滚动到下边,动态加载图片。

1. HTML代码

<!DOCTYPE html>
<html>
 <head>
 <meta charset="UTF-8">
 <title>js实现瀑布流效果-动态加载图片</title>
 <link rel="stylesheet" href="css/waterfallflow.css" type="text/css" />
 <script src="js/waterfallflow.js"></script>
 </head>
 <body>
 <p id="container">
 <p class="box">
 <p class="box_img">
 <img src="img/1.jpg" />
 </p>
 </p>
 <p class="box">
 <p class="box_img">
 <img src="img/2.jpg" />
 </p>
 </p>
 <p class="box">
 <p class="box_img">
 <img src="img/3.jpg" />
 </p>
 </p>
 <p class="box">
 <p class="box_img">
 <img src="img/4.jpg" />
 </p>
 </p>
 <p class="box">
 <p class="box_img">
 <img src="img/5.jpg" />
 </p>
 </p>
 <p class="box">
 <p class="box_img">
 <img src="img/6.jpg" />
 </p>
 </p>
 <p class="box">
 <p class="box_img">
 <img src="img/7.jpg" />
 </p>
 </p>
 <p class="box">
 <p class="box_img">
 <img src="img/3.jpg" />
 </p>
 </p>
 <p class="box">
 <p class="box_img">
 <img src="img/1.jpg" />
 </p>
 </p>
 <p class="box">
 <p class="box_img">
 <img src="img/2.jpg" />
 </p>
 </p>
 <p class="box">
 <p class="box_img">
 <img src="img/1.jpg" />
 </p>
 </p>
 <p class="box">
 <p class="box_img">
 <img src="img/2.jpg" />
 </p>
 </p>
 <p class="box">
 <p class="box_img">
 <img src="img/3.jpg" />
 </p>
 </p>
 <p class="box">
 <p class="box_img">
 <img src="img/4.jpg" />
 </p>
 </p>
 <p class="box">
 <p class="box_img">
 <img src="img/5.jpg" />
 </p>
 </p>
 <p class="box">
 <p class="box_img">
 <img src="img/6.jpg" />
 </p>
 </p>
 
 </p>
 </body>
</html>

2. CSS代码

*{
 margin: 0px;
 padding: 0px;
}
#container{
 position: relative;
}
.box{
 padding: 5px;
 float: left;
 margin: 0px auto;
}
.box_img{
 padding: 5px;
 border: 1px solid #DCDCDC;
 box-shadow: 0 0 5px #ccc;
 border-radius: 5px;
}
.box_img img{
 width: 230px;
}

3. JavaScript代码

window.onload=function(){
 
 imgLocation("container","box");
 var imgData={"data":[{"src":"1.jpg"},{"src":"2.jpg"},{"src":"3.jpg"},{"src":"3.jpg"},{"src":"4.jpg"},{"src":"5.jpg"},{"src":"6.jpg"},{"src":"2.jpg"},{"src":"3.jpg"},{"src":"3.jpg"},{"src":"4.jpg"},{"src":"5.jpg"}]}
 window.onscroll=function(){
// console.log(document.documentElement.scrollTop);
 if(checkFlag()){
 var cparent=document.getElementById("container");
 for(var i=0;i<imgData.data.length;i++){
 var ccontent=document.createElement("p");
 ccontent.className="box";
 cparent.appendChild(ccontent);
 var boximg=document.createElement("p");
 boximg.className="box_img";
 ccontent.appendChild(boximg);
 var img=document.createElement("img");
 img.src="img/"+imgData.data[i].src;
 boximg.appendChild(img);
 
 //另外一种方法在p后边追加内容,不覆盖原有内容
// var content="<p class='box'><p class='box_img'><img src='img/"+imgData.data[i].src+"'/></p></p>";
// cparent.innerHTML+=content;
 }
 imgLocation("container","box");
 }
 }
}
 
function checkFlag(){
 var cparent=document.getElementById("container");
 var ccontent=getChildElement(cparent,"box");//图片的所有box数
 var lastContentHeight=ccontent[ccontent.length-1].offsetTop;//最后一张图片距离顶部高度
 var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;//滚动条距离顶部高度
 var pageHeight=document.documentElement.clientHeight||document.body.clientHeight;//屏幕高度
// console.log(lastContentHeight+","+scrollTop+","+pageHeight);
 if(lastContentHeight<scrollTop+pageHeight){
 return true;
 }
}
 
function imgLocation(parent,content){
 var cparent=document.getElementById(parent);
 var ccontent=getChildElement(cparent,content);//图片的所有box数
 var imgWidth=ccontent[0].offsetWidth;//图片宽度
 var num=Math.floor(document.documentElement.clientWidth/imgWidth);//一行放图片个数
 cparent.style.cssText="width:"+imgWidth*num+"px;margin:0px auto";//container的宽度
 var boxHeightArr=[];//每一列box高度
 for(var i=0;i<ccontent.length;i++){
 if(i<num){
 boxHeightArr[i]=ccontent[i].offsetHeight;
 }else{
 var minHeight=Math.min.apply(null,boxHeightArr);//最小高度
 var minIndex = getMinheightLocation(boxHeightArr,minHeight);//得到最小高度下标
// console.log(minHeight+","+minIndex);
 ccontent[i].style.position="absolute";
 ccontent[i].style.top=minHeight+"px";//距离顶部高度
 ccontent[i].style.left=ccontent[minIndex].offsetLeft+"px";//距离左边长度
 boxHeightArr[minIndex]+=ccontent[i].offsetHeight;
// console.log(ccontent[i].offsetHeight+","+ccontent[i].height);//ccontent[i].height=undefined
 
 }
 }
}
 
function getMinheightLocation(boxHeightArr,minHeight){
 for(var i in boxHeightArr){
 if(boxHeightArr[i]==minHeight){
 return i
 }
 }
}
 
function getChildElement(parent,content){
 //将parent下有content的全部取出
 var contentArr=[];
 var allContent=parent.getElementsByTagName("*");
 for(i=0;i<allContent.length;i++){
 if(allContent[i].className=="box"){
 contentArr.push(allContent[i]);
 }
 }
 return contentArr;
}

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

javascript实现瀑布流动态加载图片

本文实例为大家分享了js瀑布流加载效果,动态加载图片,供大家参考,具体内容如下:鼠标滚动事件,当鼠标滚动到下边,动态加载图片。1.HTML代码。<;<。DOCTYPE html>;<;html>;<;head>;<;meta charset=";UTF-8";>;<;title>;js实现瀑布流效果-动态加载图片<;/title>;<;link rel=";stylesheet";href=";css/waterfallflow.css";type=";text/css";/>;<;script src=";>;<;>。
推荐度:
标签: 图片 加载 js
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top