使用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 相关文章推荐
增强用户体验友好性之jquery easyui window 窗口关闭时的提示
Jun 22 Javascript
变量声明时命名与变量作为对象属性时命名的区别解析
Dec 06 Javascript
jQuery的context属性用法实例
Dec 27 Javascript
css如何让浮动元素水平居中
Aug 07 Javascript
jQuery模拟物体自由落体运动(附演示与demo源码下载)
Jan 21 Javascript
Vue中fragment.js使用方法详解
Mar 09 Javascript
在一般处理程序(ashx)中弹出js提示语
Aug 16 Javascript
基于js的变量提升和函数提升(详解)
Sep 17 Javascript
layui实现table加载的示例代码
Aug 14 Javascript
webpack4 升级迁移的实现
Sep 12 Javascript
微信小程序云开发之模拟后台增删改查
May 16 Javascript
vue实现购物车列表
Jun 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 对输入信息的进行安全过滤的函数代码
2012/06/29 PHP
PHP读取RSS(Feed)简单实例
2014/06/12 PHP
php中in_array函数用法分析
2014/11/15 PHP
PHP判断IP并转跳到相应城市分站的方法
2015/03/25 PHP
PHP之密码加密的几种方式
2015/07/29 PHP
PHP文件上传、客户端和服务器端加限制、抓取错误信息、完整步骤解析
2017/01/12 PHP
PHP Primary script unknown 解决方法总结
2019/08/22 PHP
如何用javascript控制上传文件的大小
2006/10/26 Javascript
纯CSS打造的导航菜单(附jquery版)
2010/08/07 Javascript
关于js中alert弹出窗口文本换行问题简单详细说明
2012/12/11 Javascript
js 实现菜单上下显示附效果图
2013/11/21 Javascript
火狐下input焦点无法重复获取问题的解决方法
2014/06/16 Javascript
D3.js实现直方图的方法详解
2016/09/25 Javascript
JS扩展类,克隆对象与混合类实例分析
2016/11/26 Javascript
EasyUI Combobox设置默认值 获取text的方法
2016/11/28 Javascript
.net MVC+Bootstrap下使用localResizeIMG上传图片
2017/04/21 Javascript
Node.js如何实现注册邮箱激活功能 (常见)
2017/07/23 Javascript
vue.js的手脚架vue-cli项目搭建的步骤
2017/08/30 Javascript
一步步教你利用webpack如何搭一个vue脚手架(超详细讲解和注释)
2018/01/08 Javascript
详解如何在微信小程序开发中正确的使用vant ui组件
2018/09/13 Javascript
Webstorm2016使用技巧(SVN插件使用)
2018/10/29 Javascript
如何封装了一个vue移动端下拉加载下一页数据的组件
2019/01/06 Javascript
微信公众号获取用户地理位置并列出附近的门店的示例代码
2019/07/25 Javascript
js实现select下拉框选择
2020/01/11 Javascript
vue-socket.io跨域问题有效解决方法
2020/02/11 Javascript
基于python(urlparse)模板的使用方法总结
2017/10/13 Python
python生成以及打开json、csv和txt文件的实例
2018/11/16 Python
用Python解数独的方法示例
2019/10/24 Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
2020/07/20 Python
Python HTMLTestRunner如何下载生成报告
2020/09/04 Python
python如何修改文件时间属性
2021/02/05 Python
html5使用canvas绘制文字特效
2014/12/15 HTML / CSS
连锁经营管理专业大学生求职信
2013/10/30 职场文书
小学三年级班主任工作经验交流材料
2015/11/02 职场文书
一篇文章带你深入了解Mysql触发器
2021/08/02 MySQL
html中相对位置与绝对位置的具体使用
2022/05/15 HTML / CSS