使用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 相关文章推荐
简单的JS多重继承示例
Mar 13 Javascript
JQuery 常用操作代码
Mar 14 Javascript
javascript倒计时功能实现代码
Jun 07 Javascript
图片Slider 带左右按钮的js示例
Aug 30 Javascript
jquery高级编程的最佳实践详解
Mar 23 Javascript
详解JavaScript中undefined与null的区别
Mar 29 Javascript
jQuery插件bgStretcher.js实现全屏背景特效
Jun 05 Javascript
jquery选择器中的空格与大于号&gt;、加号+与波浪号~的区别介绍
Jun 24 Javascript
js 输入框 正则表达式(菜鸟必看教程)
Feb 19 Javascript
vue使用Axios做ajax请求详解
Jun 07 Javascript
Angular4学习笔记之新建项目的方法
Jul 18 Javascript
React通过redux-persist持久化数据存储的方法示例
Feb 14 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模块 Memcached功能多于Memcache
2011/06/14 PHP
自己写了一个php检测文件编码的函数
2014/04/21 PHP
自己写的兼容低于PHP 5.5版本的array_column()函数
2014/10/24 PHP
php使用ereg验证文件上传的方法
2014/12/16 PHP
PHP中数据类型转换的三种方式
2015/04/02 PHP
PHP的Json中文处理解决方案
2016/09/29 PHP
jQuery 无刷新分页实例代码
2013/11/12 Javascript
使用javascript将时间转换成今天,昨天,前天等格式
2015/06/25 Javascript
Bootstrap导航栏各元素操作方法(表单、按钮、文本)
2015/12/28 Javascript
js添加绑定事件的方法
2016/05/15 Javascript
JavaScript制作简易计算器(不用eval)
2017/02/05 Javascript
Vue2.0父子组件传递函数的教程详解
2017/10/16 Javascript
Vue的props父传子的示例代码
2020/05/20 Javascript
element-ui tree结构实现增删改自定义功能代码
2020/08/31 Javascript
解决antd的Form组件setFieldsValue的警告问题
2020/10/29 Javascript
python有证书的加密解密实现方法
2014/11/19 Python
Python 做曲线拟合和求积分的方法
2018/12/29 Python
pyside+pyqt实现鼠标右键菜单功能
2020/12/08 Python
pyqt5利用pyqtDesigner实现登录界面
2019/03/28 Python
windows下python虚拟环境virtualenv安装和使用详解
2019/07/16 Python
利用python实现短信和电话提醒功能的例子
2019/08/08 Python
Python openpyxl读取单元格字体颜色过程解析
2019/09/03 Python
python二进制读写及特殊码同步实现详解
2019/10/11 Python
为什么说python适合写爬虫
2020/06/11 Python
python Xpath语法的使用
2020/11/26 Python
皇家阿尔伯特瓷器美国官网:Royal Albert美国
2020/02/16 全球购物
请解释流与文件有什么不同
2016/07/29 面试题
什么是三层交换,说说和路由的区别在那里
2014/09/01 面试题
你懂得怎么写自荐信吗?
2013/12/27 职场文书
《音乐之都维也纳》教学反思
2014/04/16 职场文书
镇创先争优活动总结
2014/08/28 职场文书
2014年学生资助工作总结
2014/12/18 职场文书
公证处委托书
2015/01/28 职场文书
班委竞选稿范文
2015/11/21 职场文书
Nginx中使用Lua脚本与图片的缩略图处理的实现
2022/03/18 Servers
MyBatis配置文件解析与MyBatis实例演示
2022/04/07 Java/Android