使用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文件中引用依赖的js文件的方法
Mar 17 Javascript
jQuery将多条数据插入模态框的示例代码
Sep 25 Javascript
JavaScript操作HTML DOM节点的基础教程
Mar 11 Javascript
BootStrap扔进Django里的方法详解
May 13 Javascript
浅谈js对象属性 通过点(.) 和方括号([]) 的不同之处
Oct 29 Javascript
快速实现JS图片懒加载(可视区域加载)示例代码
Jan 04 Javascript
利用JS测试目标网站的打开响应速度
Dec 01 Javascript
Angular4学习笔记router的简单使用
Mar 30 Javascript
JS数组去重常用方法实例小结【4种方法】
May 28 Javascript
layui 解决富文本框form表单提交为空的问题
Oct 26 Javascript
vue 弹出遮罩层样式实例
Jul 22 Javascript
Vue 打包的静态文件不能直接运行的原因及解决办法
Nov 19 Vue.js
关于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基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
一直复略了的一个问题,关于表单重复提交
2007/02/15 Javascript
关于JS字符串函数String.replace()
2013/04/07 Javascript
checkbox勾选判断代码分析
2014/06/11 Javascript
jQuery中live()方法用法实例
2015/01/19 Javascript
简介AngularJS中使用factory和service的方法
2015/06/17 Javascript
JavaScript动态创建div等元素实例讲解
2016/01/06 Javascript
js获取时间精确到秒(年月日)
2016/03/16 Javascript
再次谈论React.js实现原生js拖拽效果引起的一系列问题
2016/04/03 Javascript
去除字符串左右两边的空格(实现代码)
2016/05/12 Javascript
基于BootStrap的图片轮播效果展示实例代码
2016/05/23 Javascript
AngularJS中的表单简单入门
2016/07/28 Javascript
Node做中转服务器转发接口
2017/10/18 Javascript
微信小程序实现点击空白隐藏的方法示例
2019/08/13 Javascript
React实现全选功能
2020/08/25 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
2020/10/19 Javascript
[50:24]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python3生成随机数实例
2014/10/20 Python
python中实现精确的浮点数运算详解
2017/11/02 Python
Python 利用内置set函数对字符串和列表进行去重的方法
2018/06/29 Python
python2.7实现邮件发送功能
2018/12/12 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
2019/01/30 Python
python3模拟实现xshell远程执行liunx命令的方法
2019/07/12 Python
python requests证书问题解决
2019/09/05 Python
python打开使用的方法
2019/09/30 Python
python代码实现TSNE降维数据可视化教程
2020/02/28 Python
Pytorch损失函数nn.NLLLoss2d()用法说明
2020/07/07 Python
解决Python 函数声明先后顺序出现的问题
2020/09/02 Python
python实现文件分片上传的接口自动化
2020/11/19 Python
使用phonegap进行提示操作的具体方法
2017/03/30 HTML / CSS
Linux机考试题
2015/10/16 面试题
企业2014年度工作总结
2014/12/10 职场文书
2015年音乐教师个人工作总结
2015/05/20 职场文书
成本低的5个创业项目:投资小、赚钱快
2019/08/20 职场文书
vue-router中hash模式与history模式的区别
2021/06/23 Vue.js
Python中递归以及递归遍历目录详解
2021/10/24 Python