本文实例为大家分享了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实现瀑布流动态加载图片原理相关推荐

  1. 不固定图片宽高瀑布流_类百度图片的固定高度横向瀑布流js方法及纯css实现的方法记录...

    微信图片_20190117105118.png 纯css实现代码: Document div{ display: flex;/*显示模式设置为弹性盒子*/ flex-wrap: wrap;/*进行强制 ...

  2. js图片加载效果(延迟加载+瀑布流加载)

    概述 两种图片加载的效果:一种是遇到图片较多时,带读条效果的加载提示:另一种是根据滑块的位置进行预加载,用户不察觉的情况下,实现瀑布流的加载效果 详细 代码下载:http://www.demodash ...

  3. Ajax实现瀑布流动态加载网页

    瀑布流的动态加载效果是我一直以来觉得最喜欢的效果之一了.最近在工作中遇到了一个情景,当我登录到系统中时,需要向另一个系统发送多次接口查询数据,之后再将这些数据显示到页面上.这就存在了这样一个问题:页面 ...

  4. 利用ajax实现织梦dedecms瀑布流无限加载功能

    该功能主要用到AJAX技术! 一.首先找到并打开/plus/list.php文件,在里面找到如下代码: require_once(dirname(__FILE__)."/../include ...

  5. JS实现动态瀑布流及放大切换图片效果(js案例)

    整理了一下当时学js写的一些案例,再次体验了一把用原生JS实现动态瀑布流效果的乐趣,现在把它整理出来,需要的小伙伴可以参考一下. 该案例主要是用HTML+CSS控制样式,通过JS实现全局瀑布流以及点击 ...

  6. uniapp实现瀑布流懒加载实现和无限上拉加载更多

    效果图: 说明: 函数说明:传入一个数组,循环获取图片高度,会根据把原数组拆分成两个数组,放在两列,                 计算单列累计高度,对比高度值的大小,实现瀑布流的布局,       ...

  7. 不固定图片宽高瀑布流_图片横向等高瀑布流,每行占满,限制行数 的实现

    图片的横向瀑布流,其实简单地按顺序排列就可以了 但要实现每行中各图片都等高(各行不一定等高,但每行里面等高),且每行都占满,就需要用到flex的特性了 控制每行图片高度都一致,可能会影响图片的比例,所 ...

  8. 动态加载图片,实现瀑布流效果

    瀑布流 1.瀑布流 瀑布流,可以有多列,每一列的高度可以不相同,但是宽度必须一样: 排列的方式是,从左往右排列,哪一列总高度最小,就优先排序,把图片放在这一列. 这样排完所有的图片后,可以保证每一列的 ...

  9. 懒加载、瀑布流和LightBox实现图片搜索效果

    开始 做一个小项目,算是对js和jQuery的一次练习吧. 图片资源来自这个网站(上面有很多高清图片关键还是免费下载的): https://unsplash.com/ 项目具体效果可以点这里: htt ...

最新文章

  1. json_encode时中文编码转正常状态
  2. android环境传感器
  3. Python发行版本Anaconda的安装说明:基于Anaconda2-4.3.1-Windows-x86_64
  4. python3 多进程锁
  5. 详细的摄像头模组工作原理!!!(转)
  6. ios 开发者账号申请流程 最新
  7. Sentinel(二)之Quick Start
  8. HTTP Error 500.19 – Internal Server Error – 0x80070021 (IIS 8.5)
  9. IE6下css常见bug处理
  10. BUG缺陷管理工具--测试用例执行
  11. Few-shot learning和Meta-learning
  12. mtd设备操作、jffs2
  13. VScode设置中文界面
  14. webpack系列之-原理篇
  15. 2020年最全最好用的在线文档盘点,建议收藏
  16. 解读Tensor张量的维数
  17. Java开发基础面试知识点
  18. android随机抽奖代码_基于JavaScript实现抽奖系统
  19. word,excel,ppt在线预览功能
  20. 计算机基础(07)密码学基础

热门文章

  1. 为什么年轻时要多赚钱?这是我听过最好的回答
  2. 吉大的计算机科学与技术,计算机科学与技术分中心
  3. UI--位图和矢量图,色彩,
  4. 嵌入式到底要不要考研?
  5. AutoSAR系列讲解(入门篇)5.4-ECU的项目流程
  6. 公司产品手册的编写方法
  7. c++复习日记2 虚函数和多态性
  8. 主板EC程序烧写异常致无法点亮修复经验
  9. openwrt修改lan口地址失败_Openwrt 修改lan为wan
  10. js-map,添加元素