详解Javascript原生瀑布流源码示例演示

浏览网页的时候经常会遇到瀑布流布局的网站。也许有些读者不了解瀑布流。瀑布流,又称瀑布流式布局。是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部。比如下面图片的效果(百度图片),就是一个典型的瀑布流。

Javascript:原生瀑布流源码示例演示,

js瀑布流加载

网上有很多JQ的瀑布流插件,而且都写好了兼容,都可以尝试去使用,这里只是跟大家分享一下原生js实现瀑布流的效果,一起学习。为了方便演示区分,我使用的是加背景数字方框的瀑布流,如果你要练习可以使用本地图片来测试!

Javascript:原生瀑布流源码示例演示,

js实现瀑布流

当滚动条到最下,往下拖动就会继续加载(如下图):

Javascript:原生瀑布流源码示例演示,

js瀑布流演示

js实现瀑布流源码

<!DOCTYPE html>

<html>

<head>

<title></title>

<meta charset=”utf-8″>

<style type=”text/css”>

* {

margin: 0;

padding: 0;

}

div {

width: 900px;

border: 1px solid blue;

margin: 0 auto;

float: left;

margin-left: 62px;

}

ul {

width: 280px;

border:1px solid red;

float: left;

margin: 5px;

}

li {

border: 1px solid green;

list-style-type: none;

margin: 5px;

}

</style>

<script type=”text/javascript”>

window.onload = function ()

{

var oUl = document.getElementsByTagName(‘ul’);

var arr = [];

var n = 0;

var arrColor = [‘red’, ‘orange’, ‘yellow’, ‘green’, ‘lime’, ‘blue’, ‘purple’];

for (var i = 0; i < oUl.length; i++) {

arr.push(oUl[i]);

}

createLi();

//求出可视区的高度

var clientHeight = document.documentElement.clientHeight;

window.onscroll = function ()

{

//求出滚轮的高度

var scrollTop = document.body.scrollTop || document.documentElement.scrollTop;

//求出滚轮滚动的最大高度

var scrollMaxTop = document.body.scrollHeight;

if ((clientHeight + scrollTop) >= scrollMaxTop) {

if (n > 6) {

return false;

}

createLi();

}

}

function createLi()

{

n++;

for (var i = 0; i < 20; i++) {

//对每一个ul中创建li元素

var li = document.createElement(‘li’);

var oHeight = rnd(100, 300);

li.style.height = oHeight + ‘px’;

li.innerHTML = i;

li.style.lineHeight = oHeight + ‘px’;

li.style.fontSize = ’50px’;

li.style.textAlign = ‘center’;

li.style.background = arrColor[n-1];

//追加li元素,并且追加到最短的下边

arr.sort(function(a, b){

return a.offsetHeight – b.offsetHeight;

});

arr[0].appendChild(li);

}

}

function rnd(n, m)

{

return parseInt(Math.random()*(m-n+1)+n);

}

}

</script>

</head>

<body>

<div>

<ul></ul>

<ul></ul>

<ul></ul>

</div>

</body>

</html>

主题测试文章,只做测试使用。发布者:小屋,转转请注明出处:http://www.rumenwu.com/operate/585.html

(0)
小屋的头像小屋
上一篇 2018年4月2日 下午10:30
下一篇 2018年4月8日 下午11:57

相关推荐

  • 一个中老年 App 里的情欲、玄学和“砍一刀”

    继“抓住 00 后”之后,各大 App 抢占“不惑后”——40 岁以上的中老年群体。 2021 年 9 月,微信上线“关怀模式”,与正常模式相比,微信关怀模式对老年群体更友好:文字更大更清晰,色彩更强更好辨认,按钮更大更易用。去年年底,小红书还申请注册了商标“老红书”,想要抓住这一群体。 不是每个中老年人都有钱,但比起正打工的社畜年轻人,至少他们更有时间。 …

    产品运营 2022年9月17日
    83400
  • jQuery表格分页代码

    代码描述:jQuery伪分页表格分页代码,采用工厂模式开发,可自行配置每页显示条数,自动生成页数。方便易用,可扩展性高!

    产品运营 2018年4月26日
    90400
  • 抖音 VS 快手:品牌自播实用方法论

    2021年,直播电商的关键词,从“红人带货”秒变为“品牌自播”,这其中,有平台的推动,有品牌的自觉,有服务商等第三方机构的助力,也有标杆品牌的示范和引导作用。 当在新流量平台自播成为了品牌必考题,且通过自播实现月销千万甚至过亿的品牌案例不断增加,我们有必要再来做个简单复盘:在抖音、快手,玩儿得好的自播品牌,到底都掌握了什么样的运营秘笈? 一、抖音:精细化流量…

    产品运营 2021年4月20日
    93400
  • 在交互设计过程中,你需要持续关注的五个问题

    认真对待交互设计过程中的每一个设计环节、每一个问题,是提高交互稿质量的基石。过程中的问题很多,需要我们持续关注并解决。

    2017年4月18日
    3.3K02
  • 如何利用私域流量促进产品成交?

    这篇文章从私域流量出发,围绕如何搭建私域流量池,朋友圈种草以及快闪群成交,分析了。推荐给对这方面有兴趣的小伙伴们。 一、搭建私域流量池 掌握一个思维——低成本吸引精准客户。 给大家介绍私域流量营销导图,在经营客户的时候,我们必须要有个渠道,如果门店开在商场,商场就是我们的公域流量或者说是渠道,比如我们线上的淘宝、微博、抖音等自媒体平台,只是大家没发现这个流量…

    产品运营 2020年3月16日
    1.4K00

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信