使用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 动态生成方法的例子
Jul 22 Javascript
javascript 特性检测并非浏览器检测
Jan 15 Javascript
window.print打印指定div实例代码
Dec 13 Javascript
调整小数的格式保留小数点后两位
May 14 Javascript
jQuery异步加载数据并添加事件示例
Aug 24 Javascript
第二次聊一聊JS require.js模块化工具的基础知识
Apr 17 Javascript
jQuery实现table中的tr上下移动并保持序号不变的实例代码
Jul 11 Javascript
微信小程序 动态绑定数据及动态事件处理
Mar 14 Javascript
Vue单文件组件基础模板小结
Aug 10 Javascript
Vue动态组件实例解析
Aug 20 Javascript
node.js实现简单的压缩/解压缩功能示例
Nov 05 Javascript
js实现简单扫雷
Nov 27 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
PHP与MySQL开发中页面乱码的产生与解决
2008/03/27 PHP
php empty,isset,is_null判断比较(差异与异同)
2010/10/19 PHP
10 个经典PHP函数
2013/10/17 PHP
Zend Framework实现多文件上传功能实例
2016/03/21 PHP
php 魔术常量详解及实例代码
2016/12/04 PHP
Jquery实现无刷新DropDownList联动实现代码
2010/03/08 Javascript
javascript打开word文档的方法
2014/04/16 Javascript
node.js中的http.response.writeHead方法使用说明
2014/12/14 Javascript
Angular.js如何从PHP读取后台数据
2016/03/24 Javascript
JS实现把鼠标放到链接上出现滚动文字的方法
2016/04/06 Javascript
angular.js指令中transclude选项及ng-transclude指令详解
2017/05/24 Javascript
jQuery简单绑定单个事件的方法示例
2017/06/10 jQuery
bootstrap daterangepicker双日历时间段选择控件详解
2017/06/15 Javascript
JavaScript简介_动力节点Java学院整理
2017/06/26 Javascript
JavaScript原型链与继承操作实例总结
2018/08/24 Javascript
vue完成项目后,打包成静态文件的方法
2018/09/03 Javascript
微信小程序动态增加按钮组件
2018/09/14 Javascript
vue服务端渲染添加缓存的方法
2018/09/18 Javascript
js指定日期增加指定月份的实现方法
2018/12/19 Javascript
快速搭建Node.js(Express)用户注册、登录以及授权的方法
2019/05/09 Javascript
Vue3.0 响应式系统源码逐行分析讲解
2019/10/14 Javascript
JS document文档的简单操作完整示例
2020/01/13 Javascript
Python中几种操作字符串的方法的介绍
2015/04/09 Python
python读文件保存到字典,修改字典并写入新文件的实例
2018/04/23 Python
用TensorFlow实现戴明回归算法的示例
2018/05/02 Python
matplotlib调整子图间距,调整整体空白的方法
2018/08/03 Python
Python和Go语言的区别总结
2019/02/20 Python
对PyQt5的输入对话框使用(QInputDialog)详解
2019/06/25 Python
详解Python可视化神器Yellowbrick使用
2019/11/11 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
世界各地的当地人的食物体验:Eatwith
2019/07/26 全球购物
学习党章思想汇报
2014/01/07 职场文书
营销总监岗位职责
2014/09/16 职场文书
门球健将观后感
2015/06/16 职场文书
安全教育的主题班会
2015/08/13 职场文书
Python可视化神器pyecharts之绘制地理图表练习
2022/07/07 Python