全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

JavaScript实现瀑布流以及加载效果

一、瀑布流是个啥?

  瀑布流,是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部。

  最早采用瀑布流布局的网站是Pinterest,逐渐在国内流行开来,比如我们熟知的百度图片的布局,在“很久”以前,百度图片还是需要一页一页的点击进行查看更多图片,而现在的瀑布流布局使用户查找图片更加方便。

二、瀑布流的优缺点

优点:

1.节省了页面的空间,不再需要导航和页码按钮。

2.增强了用户的体验,使用户的体验更多的是在于浏览图片上,而不是在寻找怎么找下一页和切换的操作上。

缺点:

1.使用的网页类型有限:

  这种瀑布流布局只适用于某些特定类型产品中一部分特定类型的内容。

  比如我们在某宝买东西时,我们就需要记住第几页的哪个商品是我们想买的,然后再回头购买,这时候就需要我们的页面按钮来帮忙记忆,瀑布流反而更加麻烦。

2.永远看不到的页脚:

  如果我们使用瀑布流无限滚动加载模式,那就是说我们永远也无法看到我们的页脚,当用户一次次的浏览到页面底部,看到页脚,却因为自动加载的内容的突然出现,无论怎样都无法点击到页脚中的链接或登录时,那么用户的体验是极为糟糕的,他们可能会愤怒的关掉你的网页。

3.关于页面数量:

  对于用户来说,使用瀑布流自动加载来替代传统的换页其实是很方便的,而对于开发者的网站来说,页面的减少可能就无法展示更多地相关信息,最明显的就是广告减少。

三、瀑布流写法及原理

瀑布流到底长什么样子呢,那我们现在就来默写一个简单的瀑布流布局。先把乱七八糟的基础样式和布局稍微的敲一下~这里我们为了节省空间,就不缩进啦~

CSS:

*{margin: 0;padding: 0;} 
#wrap{width: 840px;margin: 0 auto;border: 1px solid black;overflow: hidden;}
#wrap ul{width: 200px;margin: 0 5px;float: left;}
#wrap ul li{width: 200px;list-style: none;margin: 10px 0;background: palegreen;font-size: 50px;color: white;text-align: center;}

HTML:

<div id="wrap">
 <ul></ul>
 <ul></ul>
 <ul></ul>
 <ul></ul>
</div>

以下是简单的JS代码:

var wrap=document.querySelector("#wrap");
var ul=document.querySelectorAll("#wrap ul");//声明元素块
//先创建一个随机数的函数
function ranDom(min,max){
 return Math.random()*(max-min+1)+min;
}
//再创建一个添加li的函数
function createLi(num){
 for(var i=0;i<num;i++){
  var newLi=document.createElement("li");//创建li
  newLi.style.height=ranDom(100,400)+"px";//使用随机数函数创建高度不同的li
  var arrul=[];
//将ul的高度进行储存和比较
  for(var j=0;j<ul.length;j++){
   arrul.push(ul[j].offsetHeight);//储存ul的高度
  }
  var minHeight=arrul[0];
  var minIndex=0;
  for(var k=0;k<arrul.length;k++){
   if(minHeight>arrul[k]){
    minHeight=arrul[k];//比较出高度最短的ul然后赋值给minHeight
    minIndex=k;//把高度最短的ul所在下标赋值给minIndex
   }
  }
 ul[minIndex].appendChild(newLi);//向高度最短的ul里添加li
 } 
}
createLi(15);//执行函数,添加15个li,
//创建一个滚动事件
window.onscroll=function(){ 
// html总高度-可视化窗口高度=body的滚动高度
//兼容写法 
 var scrollTop=document.body.scrollTop; 
 var clientHeight=document.documentElement.clientHeight||document.body.clientHeight||window.innerHeight; 
 if(document.documentElement.offsetHeight-clientHeight<=scrollTop){ 
  createLi(15); 
 } 
}
//当滚动快要到达底部,还没有到达的时候,再去执行函数,创建新的li 

这样我们就实现了永远也看不到页脚的自动加载瀑布流布局。

四、总结

  瀑布流简单来讲就是页面容器内的多个高度不固定的容器之间参差不齐的添加内容,鼠标滚动时不断在容器内的尾部加载数据,且自动加载到空缺位置,也就是例子中的高度最短的位置,不断循环。

  瀑布流对于图片的展现,是高效而具有吸引力的,用户一眼扫过的快速阅读模式可以在短时间内获得更多的信息量,而瀑布流里自动加载又避免了用户鼠标点击的翻页操作。

  瀑布流的主要特性便是错落有致,定宽而不定高的设计让页面区别于传统的矩阵式图片布局模式,巧妙的利用视觉层级,视线的任意流动又缓解了视觉疲劳,同时给人以不拘一格的感觉。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# js  # 瀑布流  # 加载  # js图片加载效果实例代码(延迟加载+瀑布流加载)  # 利用JS实现简单的瀑布流加载图片效果  # javascript实现瀑布流动态加载图片原理  # javascript实现仿百度图片的瀑布流加载效果  # JavaScript实现图片自动加载的瀑布流效果  # 解析javascript瀑布流原理实现图片滚动加载  # javascript瀑布流式图片懒加载实例解析与优化  # javascript瀑布流式图片懒加载实例  # javascript实现瀑布流加载图片原理  # js实现动态加载数据瀑布流  # 最短  # 自动加载  # 随机数  # 参差不齐  # 创建一个  # 的是  # 容器内  # 是个  # 是在  # 还没有  # 鼠标  # 那就  # 多个  # 下一页  # 就不  # 还会  # 适用于  # 很久  # 错落有致 


相关文章: 企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  上海网站制作开发公司,上海买房比较好的网站有哪些?  海南网站制作公司有哪些,海口网是哪家的?  建站主机无法访问?如何排查域名与服务器问题  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  Swift中switch语句区间和元组模式匹配  如何在Golang中指定模块版本_使用go.mod控制版本号  宝塔建站无法访问?如何排查配置与端口问题?  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  C#怎么创建控制台应用 C# Console App项目创建方法  内部网站制作流程,如何建立公司内部网站?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  如何在建站之星网店版论坛获取技术支持?  网站制作软件有哪些,制图软件有哪些?  网站制作模板下载什么软件,ppt模板免费下载网站?  建站之星如何实现PC+手机+微信网站五合一建站?  网站制作壁纸教程视频,电脑壁纸网站?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  C++时间戳转换成日期时间的步骤和示例代码  官网自助建站平台指南:在线制作、快速建站与模板选择全解析  建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略  如何在新浪SAE免费搭建个人博客?  制作证书网站有哪些,全国城建培训中心证书查询官网?  免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?  如何配置WinSCP新建站点的密钥验证步骤?  音响网站制作视频教程,隆霸音响官方网站?  如何快速选择适合个人网站的云服务器配置?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  建站之星代理费用多少?最新价格详情介绍  建站之星3.0如何解决常见操作问题?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?  如何访问已购建站主机并解决登录问题?  电商平台网站制作流程,电商网站如何制作?  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  已有域名和空间,如何快速搭建网站?  如何用wdcp快速搭建高效网站?  广东专业制作网站有哪些,广东省能源集团有限公司官网?  建站之星图片链接生成指南:自助建站与智能设计教程  Thinkphp 中 distinct 的用法解析  电商网站制作公司有哪些,1688网是什么意思?  Python如何创建带属性的XML节点  建站之星在线客服如何快速接入解答?  专业网站制作服务公司,有哪些网站可以免费发布招聘信息?  网站微信制作软件,如何制作微信链接?  重庆网站制作公司哪家好,重庆中考招生办官方网站?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  官网网站制作腾讯审核要多久,联想路由器newifi官网 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。