使用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保留两位小数使用toFixed实现
Jul 29 Javascript
JavaScript伸缩的菜单简单示例
Dec 03 Javascript
javascript模拟枚举的简单实例
Mar 06 Javascript
javascript中typeof操作符和constucor属性检测
Feb 26 Javascript
基于jQuery Bar Indicator 插件实现进度条展示效果
Sep 30 Javascript
JavaScript中利用各种循环进行遍历的方式总结
Nov 10 Javascript
JavaScript中Math对象的方法介绍
Jan 05 Javascript
jQuery实现对象转为url参数的方法
Jan 11 Javascript
node 利用进程通信实现Cluster共享内存
Oct 27 Javascript
使用JavaScript实现node.js中的path.join方法
Aug 12 Javascript
微信小程序利用swiper+css实现购物车商品删除功能
Mar 06 Javascript
uni-app 组件里面获取元素宽高的实现
Dec 27 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
PHP使用header()输出图片缓存实例
2014/12/09 PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
2020/07/21 PHP
Jquey拖拽控件Draggable使用方法(asp.net环境)
2010/09/28 Javascript
用javascript判断IE版本号简单实用且向后兼容
2013/09/11 Javascript
javascript实现的弹出层背景置灰-模拟(easyui dialog)
2013/12/27 Javascript
jquery基础教程之数组使用详解
2014/03/10 Javascript
javascript工厂方式定义对象
2014/12/26 Javascript
JavaScript删除指定子元素代码实例
2015/01/13 Javascript
DOM基础教程之事件类型
2015/01/20 Javascript
js网页滚动条滚动事件实例分析
2015/05/05 Javascript
js操作css属性实现div层展开关闭效果的方法
2015/05/11 Javascript
JavaScript实现数组随机排序的方法
2015/06/26 Javascript
微信小程序 基础知识css样式media标签
2017/02/15 Javascript
提高JavaScript执行效率的23个实用技巧
2017/03/01 Javascript
ReactNative踩坑之配置调试端口的解决方法
2017/07/28 Javascript
JS实现百度搜索接口及链接功能实例代码
2018/02/02 Javascript
JS实现显示当前日期的实例代码
2018/07/03 Javascript
微信小程序页面缩放式侧滑效果的实现代码
2018/11/15 Javascript
深入浅析Vue.js 中的 v-for 列表渲染指令
2018/11/19 Javascript
Node.js API详解之 net模块实例分析
2020/05/18 Javascript
python 判断一个进程是否存在
2009/04/09 Python
Python中的异常处理相关语句基础学习笔记
2016/07/11 Python
Python编程argparse入门浅析
2018/02/07 Python
python爬虫之线程池和进程池功能与用法详解
2018/08/02 Python
python版大富翁源代码分享
2018/11/19 Python
在Qt中正确的设置窗体的背景图片的几种方法总结
2019/06/19 Python
Django 允许局域网中的机器访问你的主机操作
2020/05/13 Python
python实例化对象的具体方法
2020/06/17 Python
在终端启动Python时报错的解决方案
2020/11/20 Python
雅高酒店中国:Accorhotels.com China
2018/03/26 全球购物
linux下进程间通信的方式
2014/12/23 面试题
法务专员岗位职责
2014/01/02 职场文书
银行求职自荐书
2014/06/25 职场文书
解除劳动合同协议书(样本)
2014/10/02 职场文书
2015年大学团支部工作总结
2015/05/13 职场文书
2015年小学数学教师个人工作总结
2015/05/25 职场文书