微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JavaScript实现图片自动加载的瀑布流效果

先给大家展示下效果图:

 向下滑动网页的时候能够自动加载图片显示

  盛放图片的盒子模型如下:

rush:js;">     
Box">
Box_img">

  设置img-width为150px,然后Box_img添加内边距和阴影效果Box的外边距为0,添加内边距。盒子的宽度是由img-width和边距撑开的。也就是说盒子之间是没有间距的,但是盒子内部有一些边距的效果。这样在js设置位置的时候就不用考虑边距问题,直接调用Box的宽度就可以了。

  设置盛放所有Box的div的position为relative,这样在设置top值或是left值的时候,就不用考虑最外层的margin属性

  放置图片的位置:获得第一行图片的高度并且存放在数组里面,接下来的图片设置position为absolute,放置在高度最小的图片的下面,然后设置top和left,并且把数组的最小值加上新放置的图片的高度。也就是说HTML里面原始放置的图片除了第一行以外,其他的图片都是在js里面又重新定位的。

  当滑动页面底部的时候触发事件函数,紧接着放置一些图片,这样保证图片的无限加载。

  

HTML文件

<div class="jb51code">
<pre class="brush:js;">
<!DOCTYPE html>

Meta charset="UTF-">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box_img">

  CSS文件

rush:js;"> *{ margin: ; padding:; } #content{ position: relative; background-color: #; } .Box{ padding: px; float: left; } .Box_img{ padding: px; border: px solid #cccccc; Box-shadow: px #cccccc; border-radius: px; } img{ width: px; height: auto; }

 

 js文件

  Math.floor()函数能够向下取整。

  Math.min.apply(null,heightArr);函数能获得heightArr数组的最小值。

  window.onscroll=function(){};滑动页面的时候触发这个函数

  document.documentElement.clientHeight;浏览器显示出来的高度。

  document.documentElement.scrollTop;滑动的距离。

rush:js;"> /** * Created by asua on 2016/4/9. */ window.onload=function(){ imgLocation("content","Box"); var lodeImage={"Date":[{"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"},{"src":"10.jpg"},]} window.onscroll=function(){ if(checkFlag()){ for(var i=0;iBox=document.createElement("div"); Box.className="Box"; var cparent=document.getElementById("content"); cparent.appendChild(Box); var Box_img=document.createElement("div"); Box_img.className="Box_img"; Box.appendChild(Box_img); var img=document.createElement("img"); img.src="Img/"+lodeImage.Date[i].src; Box_img.appendChild(img); } imgLocation("content","Box"); } } } function checkFlag(){ var cparent=document.getElementById("content"); var ccontent=getChildElement(cparent,"Box"); var lastContentHeight=ccontent[ccontent.length-1].offsetTop; var scrollHeight=document.documentElement.scrollTop||document.body.scrollTop; var pageHeight=document.documentElement.clientHeight||document.body.clientHeight; console.log(lastContentHeight+":"+scrollHeight+":"+pageHeight); if(lastContentHeightsstext="width:"+imgwidth*cols+"px;margin:30px auto"; var heightArr=[]; for(var i=0;i

好了,关于js实现图片自动加载的瀑布流效果代码到此给大家介绍完了,希望对大家有所帮助!

原文地址:https://www.jb51.cc/js/49361.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐