使用JS实现图片展示瀑布流效果的实例代码


Posted in Javascript onSeptember 12, 2016

不知大家有没有发现,一般的图片展示网站都会使用瀑布流效果,所谓的瀑布流

就是网站内的图片不会一下子全缓存出来,而是等你滚动到一定的距离的时候,

下面的图片才会继续缓存,并且图片也是随机出现的,只是宽度一样,高度并不

一样,高高低低就像瀑布一样,所以叫做瀑布流效果。下面我把代码给大家,大家

随便下几张图片试试。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>瀑布流不重复</title>
  <style>
  *{margin: 0px;padding: 0px;list-style: none;}
  #box{width: 1000px;margin: 0 auto;}
  #box ul{float: left;width: 200px;margin-right: 50px;}
  #box img{width: 200px;}
  </style>
</head>
<body>
  <div id="box">
    <ul></ul>
    <ul></ul>
    <ul></ul>
    <ul></ul>
  </div>
  <script>
    var box=document.getElementById('box');
    var ul=box.children;
    function insert(){
      var x=0;
      var srcNum=Math.floor(Math.random()*35);//35是35张图片,可改成任意数,我这里总共是35张图片。
      var newli=document.createElement('li');
      newli.innerHTML='<img src="images/'+srcNum+'.png" alt="">';//这是图片的文件名,要求是统一。
      var minH=Math.min(ul[0].clientHeight,ul[1].clientHeight,ul[2].clientHeight,ul[3].clientHeight);
      for (var i = 0; i < ul.length; i++) {
        if (ul[i].clientHeight==minH) {
          x=i;
          break;
        }
      }
      ul[x].appendChild(newli);
   }
   for (var i = 0; i < 20; i++) {
     insert();
   }
   document.onscroll=function(){
     var viewH=document.body.clientHeight||document.documentElement.clientHeight;
     var winH=document.documentElement.scrollHeight;
     var scrollT=document.body.scrollTop||document.documentElement.scrollTop;
     if (winH-scrollT-viewH<500) {
       for (var i = 0; i < 20; i++) {
       insert();
     }
    }
   }
  </script>
</body>
</html>

以上这篇使用JS实现图片展示瀑布流效果的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript textContent与innerText的异同分析
Oct 22 Javascript
jsp+javascript打造级连菜单的实例代码
Jun 14 Javascript
js与C#进行时间戳转换
Nov 14 Javascript
javascript表格的渲染组件
Jul 03 Javascript
JS实现很实用的对联广告代码(可自适应高度)
Sep 18 Javascript
关于JavaScript作用域你想知道的一切
Feb 04 Javascript
jQuery ajax应用总结
Jun 02 Javascript
jQuery实现带遮罩层效果的blockUI弹出层示例【附demo源码下载】
Sep 14 Javascript
ES7中利用Await减少回调嵌套的方法详解
Nov 01 Javascript
vue.js项目打包上线的图文教程
Nov 16 Javascript
VUE+elementui面包屑实现动态路由详解
Nov 04 Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
Nov 16 Javascript
关于javascript的一些知识以及循环详解
Sep 12 #Javascript
基于AngularJS实现iOS8自带的计算器
Sep 12 #Javascript
Javascript6中字符串的四个新用法分享
Sep 11 #Javascript
JavaScript制作简单分页插件
Sep 11 #Javascript
关于vue.js弹窗组件的知识点总结
Sep 11 #Javascript
JavaScript常用代码书写规范的超全面总结
Sep 11 #Javascript
Javascript实现前端简单的路由实例
Sep 11 #Javascript
You might like
Linux环境下php实现给网站截图的方法
2016/05/03 PHP
js活用事件触发对象动作
2008/08/10 Javascript
常见JS效果之图片减速度滚动实现代码
2011/12/08 Javascript
javascript suggest效果 自动完成实现代码分享
2012/02/17 Javascript
『jQuery』名称冲突使用noConflict方法解决
2013/04/22 Javascript
用JavaScript实现用一个DIV来包装文本元素节点
2014/09/09 Javascript
轻松创建nodejs服务器(8):非阻塞是如何实现的
2014/12/18 NodeJs
jQuery中focus事件用法实例
2014/12/26 Javascript
jQuery中outerWidth()方法用法实例
2015/01/19 Javascript
JQuery实现网页右侧随动广告特效
2016/01/17 Javascript
html+js实现简单的计算器代码(加减乘除)
2016/07/12 Javascript
Vue中computed、methods与watch的区别总结
2019/04/10 Javascript
vue.js中ref和$refs的使用及示例讲解
2019/08/14 Javascript
jqGrid表格底部汇总、合计行footerrow处理
2019/08/21 Javascript
Javascript 类型转换、封闭函数及常见内置对象操作示例
2019/11/15 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——VP
2018/04/04 DOTA
[41:13]完美世界DOTA2联赛PWL S2 Forest vs Rebirth 第一场 11.20
2020/11/20 DOTA
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
2015/04/28 Python
解析Python中的生成器及其与迭代器的差异
2016/06/20 Python
Python字典中的键映射多个值的方法(列表或者集合)
2018/10/17 Python
Python爬虫beautifulsoup4常用的解析方法总结
2019/02/25 Python
Python爬虫程序架构和运行流程原理解析
2020/03/09 Python
JetBrains PyCharm(Community版本)的下载、安装和初步使用图文教程详解
2020/03/19 Python
python中rc1什么意思
2020/06/19 Python
opencv 阈值分割的具体使用
2020/07/08 Python
Python如何合并多个字典或映射
2020/07/24 Python
CSS3实现多重边框的方法总结
2016/05/31 HTML / CSS
HTML5 video进入全屏和退出全屏的实现方法
2020/07/28 HTML / CSS
美国时尚孕妇装品牌:A Pea in the Pod
2017/07/16 全球购物
男方父母婚礼答谢词
2014/01/25 职场文书
创建省级文明单位实施方案
2014/02/27 职场文书
颁奖典礼主持词
2014/03/25 职场文书
艺术教育实施方案
2014/05/03 职场文书
商场周年庆活动方案
2014/08/19 职场文书
在校学生证明格式
2015/06/24 职场文书
返乡农民工证明
2015/06/24 职场文书