使用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 相关文章推荐
动态改变div的z-index属性的简单实例
Aug 08 Javascript
JQuery伸缩导航练习示例
Nov 13 Javascript
原生js配合cookie制作保存路径的拖拽
Dec 29 Javascript
jQuery 中ajax异步调用的四种方式
Jun 28 Javascript
详细探究ES6之Proxy代理
Jul 22 Javascript
js控制div层的叠加简单方法
Oct 15 Javascript
JS验证码实现代码
Sep 14 Javascript
vue仿淘宝订单状态的tab切换效果
Jun 23 Javascript
基于vue 动态加载图片src的解决方法
Feb 05 Javascript
Vue 将后台传过来的带html字段的字符串转换为 HTML
Mar 29 Javascript
有趣的JavaScript隐式类型转换操作实例分析
May 02 Javascript
如何手写一个简易的 Vuex
Oct 10 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
Zerg剧情介绍
2020/03/14 星际争霸
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
php数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
从javascript语言本身谈项目实战
2006/12/27 Javascript
Extjs优化(一)删除冗余代码提高运行速度
2013/04/15 Javascript
使用原生JS实现弹出层特效
2014/12/22 Javascript
jQuery的animate函数实现图文切换动画效果
2015/05/03 Javascript
BootStrap中Tab页签切换实例代码
2016/05/30 Javascript
jquery实现界面无刷新加载登陆注册
2016/07/30 Javascript
JS获取及验证开始结束日期的方法
2016/08/20 Javascript
Vue.js事件处理器与表单控件绑定详解
2017/03/20 Javascript
Easyui Datagrid自定义按钮列(最后面的操作列)
2017/07/13 Javascript
Node+OCR实现图像文字识别功能
2018/11/26 Javascript
Vue入门学习笔记【基本概念、对象、过滤器、指令等】
2019/04/13 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
JavaScript中的this原理及6种常见使用场景详解
2020/02/14 Javascript
Python利用多进程将大量数据放入有限内存的教程
2015/04/01 Python
python 远程统计文件代码分享
2015/05/14 Python
对python过滤器和lambda函数的用法详解
2019/01/21 Python
详解Python locals()的陷阱
2019/03/26 Python
Python获取一个用户名的组ID过程解析
2019/09/03 Python
Scrapy框架基本命令与settings.py设置
2020/02/06 Python
Django 解决阿里云部署同步数据库报错的问题
2020/05/14 Python
在Python中字典按值排序的实现方法
2020/11/12 Python
html5指南-2.如何操作document metadata
2013/01/07 HTML / CSS
Hoover胡佛官网:美国吸尘器和洗地机品牌
2019/01/09 全球购物
Traffic People官网:女式花裙、上衣和连身裤
2020/10/12 全球购物
PHP笔试题
2012/02/22 面试题
2019年.net常见面试问题
2012/02/12 面试题
办公室助理岗位职责
2013/12/25 职场文书
装饰资料员岗位职责
2013/12/30 职场文书
二手车交易协议书标准版
2014/11/16 职场文书
运动会广播稿50字
2015/08/19 职场文书
Django一小时写出账号密码管理系统
2021/04/29 Python
Mongodb 迁移数据块的流程介绍分析
2022/04/18 MongoDB
win10怎么设置右下角图标不折叠?Win10设置右下角图标不折叠的方法
2022/07/15 数码科技