html动态加载图片,javascript实现瀑布流动态加载图片原理
本文实例为大家分享了js瀑布流加载效果,动态加载图片,供大家参考,具体内容如下
鼠标滚动事件,当鼠标滚动到下边,动态加载图片。
1. HTML代码
js实现瀑布流效果-动态加载图片
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.οnlοad=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.οnscrοll=function(){
// console.log(document.documentElement.scrollTop);
if(checkFlag()){
var cparent=document.getElementById("container");
for(var i=0;i
var ccontent=document.createElement("div");
ccontent.className="box";
cparent.appendChild(ccontent);
var boximg=document.createElement("div");
boximg.className="box_img";
ccontent.appendChild(boximg);
var img=document.createElement("img");
img.src="img/"+imgData.data[i].src;
boximg.appendChild(img);
//另外一种方法在div后边追加内容,不覆盖原有内容
// var content="
";
// 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
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
if(i
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
if(allContent[i].className=="box"){
contentArr.push(allContent[i]);
}
}
return contentArr;
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
html动态加载图片,javascript实现瀑布流动态加载图片原理相关推荐
- 不固定图片宽高瀑布流_类百度图片的固定高度横向瀑布流js方法及纯css实现的方法记录...
微信图片_20190117105118.png 纯css实现代码: Document div{ display: flex;/*显示模式设置为弹性盒子*/ flex-wrap: wrap;/*进行强制 ...
- js图片加载效果(延迟加载+瀑布流加载)
概述 两种图片加载的效果:一种是遇到图片较多时,带读条效果的加载提示:另一种是根据滑块的位置进行预加载,用户不察觉的情况下,实现瀑布流的加载效果 详细 代码下载:http://www.demodash ...
- Ajax实现瀑布流动态加载网页
瀑布流的动态加载效果是我一直以来觉得最喜欢的效果之一了.最近在工作中遇到了一个情景,当我登录到系统中时,需要向另一个系统发送多次接口查询数据,之后再将这些数据显示到页面上.这就存在了这样一个问题:页面 ...
- 利用ajax实现织梦dedecms瀑布流无限加载功能
该功能主要用到AJAX技术! 一.首先找到并打开/plus/list.php文件,在里面找到如下代码: require_once(dirname(__FILE__)."/../include ...
- JS实现动态瀑布流及放大切换图片效果(js案例)
整理了一下当时学js写的一些案例,再次体验了一把用原生JS实现动态瀑布流效果的乐趣,现在把它整理出来,需要的小伙伴可以参考一下. 该案例主要是用HTML+CSS控制样式,通过JS实现全局瀑布流以及点击 ...
- uniapp实现瀑布流懒加载实现和无限上拉加载更多
效果图: 说明: 函数说明:传入一个数组,循环获取图片高度,会根据把原数组拆分成两个数组,放在两列, 计算单列累计高度,对比高度值的大小,实现瀑布流的布局, ...
- 不固定图片宽高瀑布流_图片横向等高瀑布流,每行占满,限制行数 的实现
图片的横向瀑布流,其实简单地按顺序排列就可以了 但要实现每行中各图片都等高(各行不一定等高,但每行里面等高),且每行都占满,就需要用到flex的特性了 控制每行图片高度都一致,可能会影响图片的比例,所 ...
- 动态加载图片,实现瀑布流效果
瀑布流 1.瀑布流 瀑布流,可以有多列,每一列的高度可以不相同,但是宽度必须一样: 排列的方式是,从左往右排列,哪一列总高度最小,就优先排序,把图片放在这一列. 这样排完所有的图片后,可以保证每一列的 ...
- 懒加载、瀑布流和LightBox实现图片搜索效果
开始 做一个小项目,算是对js和jQuery的一次练习吧. 图片资源来自这个网站(上面有很多高清图片关键还是免费下载的): https://unsplash.com/ 项目具体效果可以点这里: htt ...
最新文章
- json_encode时中文编码转正常状态
- android环境传感器
- Python发行版本Anaconda的安装说明:基于Anaconda2-4.3.1-Windows-x86_64
- python3 多进程锁
- 详细的摄像头模组工作原理!!!(转)
- ios 开发者账号申请流程 最新
- Sentinel(二)之Quick Start
- HTTP Error 500.19 – Internal Server Error – 0x80070021 (IIS 8.5)
- IE6下css常见bug处理
- BUG缺陷管理工具--测试用例执行
- Few-shot learning和Meta-learning
- mtd设备操作、jffs2
- VScode设置中文界面
- webpack系列之-原理篇
- 2020年最全最好用的在线文档盘点,建议收藏
- 解读Tensor张量的维数
- Java开发基础面试知识点
- android随机抽奖代码_基于JavaScript实现抽奖系统
- word,excel,ppt在线预览功能
- 计算机基础(07)密码学基础