使用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 相关文章推荐
[原创]来自ImageSee官方 JavaScript图片浏览器
Jan 16 Javascript
jquery下异步提交表单 异步跨域提交表单
Nov 17 Javascript
node.js中的url.resolve方法使用说明
Dec 10 Javascript
jQuery中odd选择器的定义和用法
Dec 23 Javascript
js+CSS实现弹出居中背景半透明div层的方法
Feb 26 Javascript
jquery比较简洁的软键盘特效实现方法
Mar 19 Javascript
分享经典的JavaScript开发技巧
Nov 21 Javascript
javascript实现C语言经典程序题
Nov 29 Javascript
理解JavaScript中Promise的使用
Jan 18 Javascript
解决iview打包时UglifyJs报错的问题
Mar 07 Javascript
浅谈js闭包理解
Apr 01 Javascript
layui表格分页 记录勾选的实例
Sep 02 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截取汉字乱码问题解决方法mb_substr函数的应用
2008/03/30 PHP
PHP 进程锁定问题分析研究
2009/11/24 PHP
CheckBox 如何实现全选?
2006/06/23 Javascript
javascript学习随笔(使用window和frame)的技巧
2007/03/08 Javascript
用js闭包的方法实现多点标注冒泡示例
2014/05/29 Javascript
聊一聊JavaScript作用域和作用域链
2016/05/03 Javascript
jQuery Easyui datagrid行内实现【添加】、【编辑】、【上移】、【下移】
2016/12/19 Javascript
JavaScript、C# URL编码、解码总结
2017/01/21 Javascript
JS对象序列化成json数据和json数据转化为JS对象的代码
2017/08/23 Javascript
9种使用Chrome Firefox 自带调试工具调试javascript技巧
2017/12/22 Javascript
微信小程序使用Promise简化回调
2018/02/06 Javascript
vue组件name的作用小结
2018/05/23 Javascript
webstorm中配置Eslint的两种方式及差异比较详解
2018/10/19 Javascript
jquery实现烟花效果(面向对象)
2020/03/10 jQuery
使用Python中PDB模块中的命令来调试Python代码的教程
2015/03/30 Python
对tensorflow 的模型保存和调用实例讲解
2018/07/28 Python
提升Python程序性能的7个习惯
2019/04/14 Python
用Python批量把文件复制到另一个文件夹的实现方法
2019/08/16 Python
python控制台实现tab补全和清屏的例子
2019/08/20 Python
python的移位操作实现详解
2019/08/21 Python
Python3 中作为一等对象的函数解析
2019/12/11 Python
python plotly画柱状图代码实例
2019/12/13 Python
python图形界面开发之wxPython树控件使用方法详解
2020/02/24 Python
Python3 filecmp模块测试比较文件原理解析
2020/03/23 Python
Python实现爬取并分析电商评论
2020/06/19 Python
详解CSS3阴影 box-shadow的使用和技巧总结
2016/12/03 HTML / CSS
Monnier Freres中文官网:法国领先的奢侈品配饰在线零售商
2017/11/01 全球购物
几道Java和数据库的面试题
2013/05/30 面试题
小区门卫管理制度
2014/01/29 职场文书
学校出纳员岗位职责
2014/03/18 职场文书
起诉状范本
2015/05/20 职场文书
2015年会计人员工作总结
2015/05/22 职场文书
八年级物理教学反思
2016/02/19 职场文书
原生Js 实现的简单无缝滚动轮播图的示例代码
2021/05/10 Javascript
python利用while求100内的整数和方式
2021/11/07 Python
vue3引入highlight.js进行代码高亮的方法实例
2022/04/08 Vue.js