使用JS实现图片展示瀑布流效果(简单实例)


Posted in Javascript onSeptember 06, 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 相关文章推荐
关于js获取radio和select的属性并控制的代码
May 12 Javascript
JS 操作符整理[推荐收藏]
Nov 15 Javascript
一个小例子解释如何来阻止Jquery事件冒泡
Jul 17 Javascript
jQuery中extend函数的实现原理详解
Feb 03 Javascript
JS简单获取及显示当前时间的方法
Aug 03 Javascript
jQuery实现获取table中鼠标click点击位置行号与列号的方法
Oct 09 jQuery
Vue-resource拦截器判断token失效跳转的实例
Oct 27 Javascript
vue使用自定义icon图标的方法
May 14 Javascript
js实现文件上传功能 后台使用MultipartFile
Sep 08 Javascript
Vue-CLI项目中路由传参的方式详解
Sep 01 Javascript
微信小程序实现选择地址省市区三级联动
Jun 21 Javascript
vue引入Excel表格插件的方法
Apr 28 Vue.js
ion content 滚动到底部会遮住一部分视图的快速解决方法
Sep 06 #Javascript
原生JS:Date对象全面解析
Sep 06 #Javascript
如何解决IONIC页面底部被遮住无法向上滚动问题
Sep 06 #Javascript
Vue.js每天必学之过渡与动画
Sep 06 #Javascript
Vue.js 父子组件通讯开发实例
Sep 06 #Javascript
Vuejs第十篇之vuejs父子组件通信
Sep 06 #Javascript
Vue.js每天必学之方法与事件处理器
Sep 06 #Javascript
You might like
《被神捡到的男人》动画化计划进行中!
2020/03/06 日漫
实例简介PHP的一些高级面向对象编程的特性
2015/11/27 PHP
PhpStorm terminal无法输入命令的解决方法
2016/10/09 PHP
Prototype使用指南之hash.js
2007/01/10 Javascript
js 实现无缝滚动 兼容IE和FF
2009/07/15 Javascript
JavaScript和ActionScript的交互实现代码
2010/08/01 Javascript
iframe子页面获取父页面元素的方法
2013/11/05 Javascript
Jquery注册事件实现方法
2015/05/18 Javascript
Javascript实现获取及设置光标位置的方法
2015/07/21 Javascript
全面解析JavaScript中“&amp;&amp;”和“||”操作符(总结篇)
2016/07/18 Javascript
最简单纯JavaScript实现Tab标签页切换的方式(推荐)
2016/07/25 Javascript
如何使用headjs来管理和异步加载js
2016/11/29 Javascript
JavaScript的变量声明提升问题浅析(Hoisting)
2016/11/30 Javascript
vue.js实现单选框、复选框和下拉框示例
2017/07/18 Javascript
Angular浏览器插件Batarang介绍及使用
2018/02/07 Javascript
js技巧之十几行的代码实现vue.watch代码
2018/06/09 Javascript
微信小程序实现团购或秒杀批量倒计时
2020/11/01 Javascript
node app 打包工具pkg的具体使用
2019/01/17 Javascript
js实现移动端tab切换时下划线滑动效果
2019/09/08 Javascript
jQuery 筛选器简单操作示例
2019/10/02 jQuery
vuejs实现下拉框菜单选择
2020/10/23 Javascript
python每隔N秒运行指定函数的方法
2015/03/16 Python
12步教你理解Python装饰器
2016/02/25 Python
python获取程序执行文件路径的方法(推荐)
2018/04/26 Python
Python爬取个人微信朋友信息操作示例
2018/08/03 Python
Django 配置多站点多域名的实现步骤
2019/05/17 Python
django2笔记之路由path语法的实现
2019/07/17 Python
Jupyter加载文件的实现方法
2020/04/14 Python
HelloFresh澳大利亚:订购你的美味食品盒、健康餐食
2018/03/28 全球购物
Tessabit日本:集世界奢侈品和设计师品牌的意大利精品买手店
2020/01/07 全球购物
如何在Oracle中查看各个表、表空间占用空间的大小
2015/10/31 面试题
中学生运动会入场词
2014/02/12 职场文书
2014年十一国庆向国旗敬礼寄语
2014/04/11 职场文书
开国大典观后感
2015/06/04 职场文书
社区挂职锻炼个人工作总结
2015/10/23 职场文书
python神经网络Xception模型
2022/05/06 Python