使用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 相关文章推荐
javascript笔试题目附答案@20081025_jb51.net
Oct 26 Javascript
javascript 学习之旅 (2)
Feb 05 Javascript
使用js声明数组,对象在jsp页面中(获得ajax得到json数据)
Nov 05 Javascript
JavaScript实现彩虹文字效果的方法
Apr 16 Javascript
jQuery表单验证功能实例
Aug 28 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
Nov 12 Javascript
jQuery is not defined 错误原因与解决方法小结
Mar 19 Javascript
javascript+css3开发打气球小游戏完整代码
Nov 28 Javascript
Vue-Router的使用方法
Sep 05 Javascript
微信小程序文字显示换行问题
Jul 28 Javascript
Vue.js中provide/inject实现响应式数据更新的方法示例
Oct 16 Javascript
vue 组件开发原理与实现方法详解
Nov 29 Javascript
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
如何删除多级目录
2006/10/09 PHP
用PHP和ACCESS写聊天室(六)
2006/10/09 PHP
PHP 读取文件内容代码(txt,js等)
2009/12/06 PHP
模仿jQuery each函数的链式调用
2009/07/22 Javascript
自己的js工具 Event封装
2009/08/21 Javascript
cookie在javascript中的使用技巧以及隐私在服务器端的设置
2012/12/03 Javascript
JavaScript插件化开发教程 (四)
2015/01/27 Javascript
javascript定时器完整实例
2015/02/10 Javascript
浅谈javascript中call()、apply()、bind()的用法
2015/04/20 Javascript
js获取地址栏参数的两种方法
2017/06/27 Javascript
JavaScript引用类型Function实例详解
2018/08/09 Javascript
解决angularjs中同步执行http请求的方法
2018/08/13 Javascript
ios设备中angularjs无法改变页面title的解决方法
2018/09/13 Javascript
JavaScript设计模型Iterator实例解析
2020/01/22 Javascript
浅谈javascript事件环微任务和宏任务队列原理
2020/09/12 Javascript
Vue实现图书管理小案例
2020/12/03 Vue.js
[02:59]2014DOTA2西雅图国际邀请赛 圆满落幕中国夺冠
2014/07/23 DOTA
[44:43]完美世界DOTA2联赛决赛日 FTD vs GXR 第一场 11.08
2020/11/11 DOTA
Python如何快速实现分布式任务
2017/07/06 Python
Python基于Flask框架配置依赖包信息的项目迁移部署
2018/03/02 Python
Python实现E-Mail收集插件实例教程
2019/02/06 Python
Python彻底删除文件夹及其子文件方式
2019/12/23 Python
Python有参函数使用代码实例
2020/01/06 Python
CSS3制作日历实现代码
2012/01/21 HTML / CSS
HTML5 canvas基本绘图之绘制矩形
2016/06/27 HTML / CSS
毕业生个人求职信范文分享
2014/01/05 职场文书
白酒市场开发计划书
2014/01/09 职场文书
英文商务邀请信
2014/01/22 职场文书
网络工程师自荐书范文
2014/04/01 职场文书
三分钟演讲稿范文
2014/04/24 职场文书
环卫工人节活动总结
2014/08/29 职场文书
2014年实习期工作总结
2014/11/27 职场文书
2015高考寄语集锦
2015/02/27 职场文书
2019学校请假条格式及范文
2019/06/25 职场文书
MySQL 8.0 驱动与阿里druid版本兼容问题解决
2021/07/01 MySQL
Python查找算法的实现 (线性、二分,分块、插值查找算法)
2022/04/24 Python