使用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放大镜效果超漂亮噢
Nov 15 Javascript
jQuery插件制作之参数用法实例分析
Jun 01 Javascript
jQuery解决浏览器兼容性问题案例分析
Apr 15 Javascript
javascript匀速动画和缓冲动画详解
Oct 20 Javascript
Vue中添加过渡效果的方法
Mar 16 Javascript
jquery事件与绑定事件
Mar 16 Javascript
JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】
Apr 19 Javascript
浅谈js的解析顺序 作用域 严格模式
Oct 23 Javascript
vue制作抓娃娃机的示例代码
Apr 17 Javascript
jQuery 动画与停止动画效果实例详解
May 19 jQuery
js校验开始时间和结束时间
May 26 Javascript
JavaScript canvas实现雨滴特效
Jan 10 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
在项目中寻找代码的坏命名
2012/07/14 PHP
分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
2014/01/30 PHP
使用PHPExcel操作Excel用法实例分析
2015/03/26 PHP
给WordPress的编辑后台添加提示框的代码实例分享
2015/12/25 PHP
PHP合并数组的2种方法小结
2016/11/24 PHP
php中请求url的五种方法总结
2017/07/13 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
2018/10/25 PHP
取消选中单选框radio的三种方式示例介绍
2013/12/23 Javascript
JS实现div居中示例
2014/04/17 Javascript
jQuery+css实现的时钟效果(兼容各浏览器)
2016/01/27 Javascript
JavaScript编写Chrome扩展实现与浏览器的交互及时间通知
2016/05/16 Javascript
js禁止浏览器的回退事件
2017/04/20 Javascript
微信小程序 wx.request方法的异步封装实例详解
2017/05/18 Javascript
浅谈js中的this问题
2017/08/31 Javascript
详解Chai.js断言库API中文文档
2018/01/31 Javascript
使用Vue动态生成form表单的实例代码
2018/04/26 Javascript
Vue项目webpack打包部署到Tomcat刷新报404错误问题的解决方案
2018/05/15 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
2018/07/10 Javascript
redux.js详解及基本使用
2019/05/24 Javascript
浅谈vue中组件绑定事件时是否加.native
2019/11/09 Javascript
[01:22:29]真视界:2019年国际邀请赛总决赛
2020/01/29 DOTA
Python线程的两种编程方式
2015/04/14 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
2019/04/15 Python
HTML5实现移动端弹幕动画效果
2019/08/01 HTML / CSS
html5 移动端视频video的android兼容(去除播放控件、全屏)
2020/03/26 HTML / CSS
企业面试题试卷附带答案
2015/12/20 面试题
财政局长自荐信范文
2013/12/22 职场文书
管理部副部长岗位职责范文
2014/03/09 职场文书
竞选班干部的演讲稿
2014/04/24 职场文书
2015年人力资源部工作总结
2015/04/30 职场文书
2015年行政人事部工作总结
2015/05/13 职场文书
国王的演讲观后感
2015/06/03 职场文书
同意落户证明
2015/06/19 职场文书
导游词之桂林山水
2019/09/20 职场文书
关于python爬虫应用urllib库作用分析
2021/09/04 Python
Spring Security中用JWT退出登录时遇到的坑
2021/10/16 Java/Android