使用JS实现图片展示瀑布流效果(简单实例)


Posted in Javascript onSeptember 06, 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和HTML5利用canvas构建Web五子棋游戏实现算法
Jul 17 Javascript
鼠标拖动实现DIV排序示例代码
Oct 14 Javascript
Js实现无刷新删除内容
Apr 29 Javascript
jQuery autoComplete插件两种使用方式及动态改变参数值的方法详解
Oct 24 Javascript
JavaScript常用正则函数用法示例
Jan 23 Javascript
jQuery实现遍历复选框的方法示例
Mar 06 Javascript
Vue.js数据绑定之data属性
Jul 07 Javascript
自适应布局meta标签中viewport、content、width、initial-scale、minimum-scale、maximum-scale总结
Aug 18 Javascript
JS字符串去除连续或全部重复字符的实例
Mar 08 Javascript
Javascript ParentNode和ChildNode接口原理解析
Mar 16 Javascript
VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法
Apr 17 Javascript
node.js如何根据URL返回指定的图片详解
Oct 21 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
Sep 06 #Javascript
原生JS:Date对象全面解析
Sep 06 #Javascript
如何解决IONIC页面底部被遮住无法向上滚动问题
Sep 06 #Javascript
Vue.js每天必学之过渡与动画
Sep 06 #Javascript
Vue.js 父子组件通讯开发实例
Sep 06 #Javascript
Vuejs第十篇之vuejs父子组件通信
Sep 06 #Javascript
Vue.js每天必学之方法与事件处理器
Sep 06 #Javascript
You might like
第六节 访问属性和方法 [6]
2006/10/09 PHP
ajax在joomla中的原生态应用代码
2012/07/19 PHP
Yii使用CLinkPager分页实例详解
2014/07/23 PHP
又一个PHP实现的冒泡排序算法分享
2014/08/21 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
利用JQuery为搜索栏增加tag提示
2009/06/22 Javascript
IE iframe的onload方法分析小结
2010/01/07 Javascript
javascript XMLHttpRequest对象全面剖析
2010/04/24 Javascript
js调用浏览器打印模块实现点击按钮触发自定义函数
2014/03/21 Javascript
Javascript中数组sort和reverse用法分析
2014/12/30 Javascript
JS实现图片放大镜效果的方法
2015/02/27 Javascript
用JavaScript判断CSS浏览器类型前缀的两种方法
2015/10/08 Javascript
jQuery解析json格式数据简单实例
2016/01/22 Javascript
jQuery通过deferred对象管理ajax异步
2016/05/20 Javascript
Three.js学习之文字形状及自定义形状
2016/08/01 Javascript
angular.fromJson与toJson方法用法示例
2017/05/17 Javascript
Angular 4依赖注入学习教程之Injectable装饰器(六)
2017/06/04 Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
2017/06/27 Javascript
详解VUE2.X过滤器的使用方法
2018/01/11 Javascript
微信小程序实现自上而下字幕滚动
2018/07/14 Javascript
详解vue.js下引入百度地图jsApi的两种方法
2018/07/27 Javascript
Vue实现回到顶部和底部动画效果
2019/07/31 Javascript
js 递归json树实现根据子id查父id的方法分析
2019/11/08 Javascript
Python3.5文件读与写操作经典实例详解
2019/05/01 Python
在自动化中用python实现键盘操作的方法详解
2019/07/19 Python
django fernet fields字段加密实践详解
2019/08/12 Python
Python callable内置函数原理解析
2020/03/05 Python
解决python 在for循环并且pop数组的时候会跳过某些元素的问题
2020/12/11 Python
CSS3实现可关闭的下拉手风琴菜单效果
2015/08/31 HTML / CSS
HTML5 video进入全屏和退出全屏的实现方法
2020/07/28 HTML / CSS
法国在线购买汽车轮胎网站:123pneus.fr
2019/02/25 全球购物
工业设计专业自荐书
2014/06/05 职场文书
药店促销活动策划方案
2014/08/24 职场文书
2014年办公室文员工作总结
2014/11/12 职场文书
升学宴来宾致辞
2015/07/27 职场文书
js 数组 fill() 填充方法
2021/11/02 Javascript