使用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中常见陷阱小结
Apr 27 Javascript
jQuery实现原理的模拟代码 -6 代码下载
Aug 16 Javascript
jQuery使用一个按钮控制图片的伸缩实现思路
Apr 19 Javascript
node.js中的events.emitter.listeners方法使用说明
Dec 10 Javascript
Javascript数据结构与算法之列表详解
Mar 12 Javascript
详解js中Json的语法与格式
Nov 22 Javascript
bootstrap datetimepicker 日期插件在火狐下出现一条报错信息的原因分析及解决办法
Mar 08 Javascript
微信小程序实现天气预报功能
Jul 18 Javascript
vue移动端html5页面根据屏幕适配的四种解决方法
Oct 19 Javascript
jQuery使用bind动态绑定事件无效的处理方法
Dec 11 jQuery
vue组件中iview的modal组件爬坑问题之modal的显示与否应该是使用v-show
Apr 12 Javascript
JavaScript变量Dom对象的所有属性
Apr 30 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 IP及IP段进行访问限制的代码
2008/12/17 PHP
PHP教程 变量定义
2009/10/23 PHP
PHP类的使用 实例代码讲解
2009/12/28 PHP
PHP生成不同颜色、不同大小的tag标签函数
2013/09/23 PHP
php的hash算法介绍
2014/02/13 PHP
关于URL最大长度限制的相关资料查证
2014/12/23 PHP
zeroclipboard复制到剪切板的flash
2010/08/04 Javascript
in.js 一个轻量级的JavaScript颗粒化模块加载和依赖关系管理解决方案
2011/07/26 Javascript
在每个匹配元素的外部插入新元素的方法
2013/12/20 Javascript
jquery实现滑动特效代码
2015/08/10 Javascript
JS实现六边形3D拖拽翻转效果的方法
2016/09/11 Javascript
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
2017/05/15 jQuery
JS获取短信验证码倒计时的实现代码
2017/05/22 Javascript
jQuery结合jQuery.cookie.js插件实现换肤功能示例
2017/10/14 jQuery
react+redux的升级版todoList的实现
2017/12/18 Javascript
jQuery实现文字超过1行、2行或规定的行数时自动加省略号的方法
2018/03/28 jQuery
Angular项目如何升级至Angular6步骤全纪录
2018/09/03 Javascript
JavaScript如何借用构造函数继承
2019/11/06 Javascript
Vue如何实现监听组件原生事件
2020/07/03 Javascript
vue使用echarts画组织结构图
2021/02/06 Vue.js
python cx_Oracle模块的安装和使用详细介绍
2017/02/13 Python
Python常见字符串操作函数小结【split()、join()、strip()】
2018/02/02 Python
win10下python3.5.2和tensorflow安装环境搭建教程
2018/09/19 Python
Python类中方法getitem和getattr详解
2019/08/30 Python
Python银行系统实战源码
2019/10/25 Python
解决pycharm修改代码后第一次运行不生效的问题
2021/02/06 Python
英国健身专家:WIT Fitness
2021/02/09 全球购物
EJB的角色和三个对象
2015/12/31 面试题
年终晚会主持词
2014/03/25 职场文书
老人节标语大全
2014/10/08 职场文书
群众路线教育实践活动调研报告
2014/11/03 职场文书
毕业生见习报告总结
2014/11/08 职场文书
2014年校长工作总结
2014/12/11 职场文书
ktv服务员岗位职责
2015/02/09 职场文书
公务员年终个人总结
2015/02/12 职场文书
2015年入党积极分子培养考察意见
2015/08/12 职场文书