瀑布流布局实现的代码

这篇文章给大家介绍的内容是关于瀑布流布局实现的代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

index.html

waterfall layout 
@@##@@
@@##@@
@@##@@
@@##@@
@@##@@
@@##@@
@@##@@
@@##@@
@@##@@
@@##@@
@@##@@
@@##@@
@@##@@
@@##@@
@@##@@
@@##@@
@@##@@
@@##@@
@@##@@
@@##@@
@@##@@
@@##@@
@@##@@
@@##@@
@@##@@
@@##@@

wf.css

@CHARSET "UTF-8";*{margin:0;padding:0}#main{    position: relative;    margin: 10px auto 0 auto;}.box{    float:left;    padding: 0 0 15px 15px; }.pic{    border: 1px solid #ccc;    padding: 10px;}.box img{    width: 200px;    height: auto;}

wf.js

window.onload = function(){    waterfall();    //要加载的数据,暂时写一个固定数据    var dataInt = {"data":[{"src":'3.jpg'},{"src":'13.jpg'},{"src":'23.jpg'},{"src":'1.jpg'}]};    //一个判断拖动滚动条后是否加载新内容的方法    window.onscroll = function(){        if(checkScrollSlide()){            //将数据块渲染到当前页的尾部            for(var i = 0; i < dataInt.data.length;i++){                var parent = document.getElementById('main');                var newBox = document.createElement('p');                newBox.className = 'box';                parent.appendChild(newBox);                var newPic = document.createElement('p');                newPic.className = 'pic';                newBox.appendChild(newPic);                var newImg = document.createElement('img');                newImg.src = "./imgs/" + dataInt.data[i].src;                newPic.appendChild(newImg);                waterfall();            }        }    }}function waterfall(){    var parent = document.getElementById("main");    //写一个方法根据类名box,找到所有节点    var boxArr = getByClass(parent,'box');    //console.log(boxArr.length);//26,检验是否获取到    var bodyWidth = document.body.clientWidth;    //document.body.clientWidth  窗口实时显示时的body的宽度    var colWidth = boxArr[0].offsetWidth;//box p的宽度    var cols = Math.floor(bodyWidth / colWidth);    //给main p一个宽度,从而让显示内容不会随着浮动,改变布局    var mainWidth = colWidth * cols;    parent.style.cssText = 'width:' + mainWidth + 'px;';    var colsHeight = [];//放列高度的数组    for(var i = 0; i < boxArr.length;i++){        var iBox = boxArr[i];        if(i < cols){            colsHeight.push(iBox.offsetHeight);        }else{            var rArr = searchMin(colsHeight);            var index = rArr[0];            var minH = rArr[1];            var left = parseInt(index * colWidth);            var top = minH;            iBox.style.position = "absolute";            iBox.style.left = left + 'px';            iBox.style.top = top + 'px';            colsHeight[index] += iBox.offsetHeight;        }    }}function getByClass(parent,clsName){    //用通配符获得prent下的所有标签节点    var allTags = document.getElementsByTagName("*");    var arr = new Array();    for(var i = 0; i < allTags.length;i++){        if(allTags[i].className == clsName){            arr.push(allTags[i]);        }    }    return arr;}function searchMin(arr){    var min = arr[0];    var index = 0;    for(var j = 0; j < arr.length; j++){        if(arr[j] < min){            min = arr[j];            index = j;        }    }    return [index,min];    }function checkScrollSlide(){    var parent = document.getElementById('main');    var boxArr = getByClass(parent,'box');    var lastBox = boxArr[boxArr.length-1];    var lbHeight = lastBox.offsetTop+Math.floor(lastBox.offsetHeight/2);    console.log(lbHeight);    var slideH = document.body.scrollTop || document.documentElement.scrollTop;    console.log(slideH);    var winH = document.body.clientHeight || document.documentElement.clientHeight;    console.log(winH);    var swHeight = slideH + winH;    return (lbHeight < swHeight) ? true : false;}

相关文章推荐:

div标签:水平居中和垂直居中的实现(附代码)

css box-sizing属性(盒子模型)的用法介绍

瀑布流布局实现的代码瀑布流布局实现的代码瀑布流布局实现的代码瀑布流布局实现的代码瀑布流布局实现的代码瀑布流布局实现的代码瀑布流布局实现的代码瀑布流布局实现的代码瀑布流布局实现的代码瀑布流布局实现的代码瀑布流布局实现的代码瀑布流布局实现的代码瀑布流布局实现的代码瀑布流布局实现的代码瀑布流布局实现的代码瀑布流布局实现的代码瀑布流布局实现的代码瀑布流布局实现的代码瀑布流布局实现的代码瀑布流布局实现的代码瀑布流布局实现的代码瀑布流布局实现的代码瀑布流布局实现的代码瀑布流布局实现的代码瀑布流布局实现的代码瀑布流布局实现的代码

以上就是瀑布流布局实现的代码的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1546495.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月21日 18:16:03
下一篇 2025年12月21日 18:16:17

相关推荐

  • html实现一个简单的注册页面(附代码)

    本篇文章给大家带来的内容是关于html实现一个简单的注册页面(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 1.创建一个html文件 2.根据案例图片进行设计 3.写相应的html代码 注册请注册注册邮箱:&nbsp 你可以使用账号去注册或者手机号注册创建密码:真…

    2025年12月21日
    000
  • 父元素标签的默认行为以及click事件之间的相互影响

    本篇文章给大家带来的内容是关于父元素a标签的href默认行为以及子元素绑定的click事件的响应之间存在影响,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 开发过程中遇到问题,简单写个demo   运行环境为Chrome 68 描述一下这个问题,当a标签内部存在嵌套时, 父元素a标…

    2025年12月21日
    000
  • html中标签嵌套的问题如何解决

    本篇文章给大家带来的内容是关于html中标签嵌套的问题如何解决,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 问题描述 期待样式: 单一精确度显示:“精确度等级:xxxxx” 立即学习“前端免费学习笔记(深入)”; 非单一精确度显示:“精确度等级:xxxxx ~ xxxxx” 错误…

    2025年12月21日 好文分享
    000
  • HTML中弹性布局(Flex)的介绍(附代码)

    这篇文章给大家分享的内容是关于html中弹性布局的内容,有需要的朋友可以参考一下,希望可以帮助到大家。 一、Flex布局是什么? Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为Flex布局。 二、基本概念 采用Flex布局的元素,…

    2025年12月21日
    000
  • HTML有哪些标签?html常用标签大全

    html中标签有很多,每一种标签都有着不同的用处,下面这篇文章创想鸟给大家总结html常用的标签,每一种标签都会跟随一个例子,话不多说,让我们来看看具体内容。 字体标签,用于展示效果中修饰文字样式 文字 size:控制字体大小.最小1 ~ 最大7。 如果设置范围不在1~7之间,设置无效 color:…

    2025年12月21日 好文分享
    000
  • frameset框架怎么用?frameset框架属性的使用

    本篇文章给大家带来的内容是关于frameset框架怎么用?frameset框架属性的使用,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 frameset是html中的框架标签,用来定义多个框架的集合,每个框架都具有独立的文档。 frameset时使用注意两点: ①不能在body中使…

    2025年12月21日
    000
  • 关于http前端存储的总结

    本篇文章分享给大家的内容是关于http前端存储的总结,内容很详细,接下来我们就来看看具体的内容,希望可以帮助到有需要的朋友。 cookie 为什么会有cookie http协议的无状态,所谓无状态即是服务器并不是知道这次的请求和上次的请求是不是同一个client发来的,就好比你经常去一家超市买东西,…

    2025年12月21日 好文分享
    000
  • HTML中列表、表格和媒体元素的介绍

    这篇文章给大家介绍的文章内容是关于html中列表、表格和媒体元素的介绍,有很好的参考价值,希望可以帮助到有需要的朋友。 列表:有三种,有序列表,无序列表,定义列表1.有序列表:列表项: 要显示的内容写在li里面,不要写在li的外面有序列表在每个列表项前面都有排序,排序方式可以通过在ol标签中设置ty…

    好文分享 2025年12月21日
    000
  • 前端进行文件上传的各种方法总结(代码)

    这篇文章给大家介绍的文章内容是关于前端进行文件上传的各种方法总结(代码),有很好的参考价值,希望可以帮助到有需要的朋友。 一、通过Form表单提交上传 HTML  enctype属性必不可少 上面一种方法通过表单自有属性进行提交,看似简单,但是也有其最大的缺点,那就是提交完毕之后直接进行了跳转,这对…

    好文分享 2025年12月21日
    000
  • 浅析HTML Table表格的使用方法

    这篇文章给大家介绍的文章内容是关于浅析html table表格的使用方法,有很好的参考价值,希望可以帮助到有需要的朋友。 定义和用法 table标签定义 HTML 表格。 创建表格的四要素:table、tr、th、td 整个表格以 标记开始、标记结束。 Table row。表格的一行,有几对 tr …

    2025年12月21日
    000
  • HTML5有哪些新特性和新标签?分享HTML5 JS新特性

    自从有了h5后,大家都只记得html5了吧,html4是不是都被遗忘了,确实,html5功能强大,用途也多,对web来说意义非凡,他可以把目前web上存在的各种问题一并解决掉,所以本文将会详细介绍html5 的新特性。apache php mysql begin! 一、HTML5与HTML4 1.1…

    2025年12月21日 好文分享
    000
  • 一个完整的HTML对象是什么样的,如何生成?

    对html对象,首先要先提到node节点,node是一个接口,许多dom类型从这个接口继承,并允许类似地处理(或测试)这些各种类型。有那些接口重node继承其方法和属性?先看看本文章吧。apache php mysql 为何写这篇文章? 你可能做Web开发已经有一段时间,你是否有想过下列问题呢?为什…

    好文分享 2025年12月21日
    000
  • HTML+CSS和DIV如何实现排版布局

    这篇文章主要介绍了关于html+css和div如何实现排版布局,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 HTML CSS + div实现排版布局 1.网页可以看成是由一个一个“盒子”组成,如图: 由上图可以看出,页面分为上(网站导航)、中、下(版权声明)三个部分,中间部分又分为…

    2025年12月21日 好文分享
    000
  • html学习中的几个重点总结

    关于html的重点总结块元素、行内元素、行内块状元素html可以将元素分类方式分为行内元素、块状元素和行内块状元素三种 使用display属性能够将三者任意转换 块状元素自动换行 转换方法    (1)display:inline;转换为行内元素    (2)display:block;转换为块状元…

    好文分享 2025年12月21日
    000
  • 对响应式web设计的方法实现

    这篇文章分享给大家的内容是关于响应式web设计的方法实现,内容很有参考价值,希望可以帮到有需要的小伙伴。 媒体查询的用法 media 媒体查询包含一个可选的媒体类型和,满足CSS3规范的条件下,包含零个或多个表达式,这些表达式描述了媒体特征,最终会被解析为true或false。如果媒体查询中指定的媒…

    2025年12月21日 好文分享
    000
  • html文本标签

    文本的重要性:文本是页面中最主要的内容,也是唯一可以被搜索引擎识别的内容,所以特别重要  1. ~ 刚才学过的标题就是一个文本标签 2.标题标签默认为加粗显示,编号越大,字体就越小,编号与大小成反比,要注意 3.经常与标题标签配对使用还有一个水平分隔线标签 ,它是一个单标签 标签,用来描述页面中的段…

    好文分享 2025年12月21日
    000
  • html链接标签

    1. 很多小伙伴,对网络的第一印象可能就是网站上有很多可以一点击就可以打开的页面 2. 你点击的可能是一个标题文本,也可能是一张图片,一个按钮,但本质上其实就是一个链接 这里我们打创想鸟首页,来体验一下,可以看到链接无处不在,没有链接就没有互联网 3.链接标签是,它的最重要的属性就href,就是要跳…

    好文分享 2025年12月21日
    000
  • html图像标签

    图像标签可能是最大最感兴趣的啦,俗话说,有图有真相,一张图片,胜过万语千言 页面中有了图像,会瞬间变得多姿多彩,使用户的体验也瞬间提升 但是图像是外部资源,加载到当前页面是需要时间的,所以图像虽好,也不能滥用 用得好,画龙点睛,用不好,画蛇添足 图像使用标签,这是在之前前端初体验课程中提到过 立即学…

    好文分享 2025年12月21日
    000
  • html表格的基本属性

    表格是最重要的数据化格式工具啦,无论是前台还是后台,都有大量的应用。 我们先打几个网站看一下,页面中哪些内容是用表格做的。 html创建表格使用table标签,这个标签是一个典型的复合标签,因它只写它是没用的,必须要配合内部的子标签才有意义。 创建表格的基本原则是:先创建行,再划分列。一行一列叫一个…

    好文分享 2025年12月21日
    000
  • html表格的分区与分组控制

    1. 表格的分区主要用 将表格分为头部,主体,尾部三分部 2. 这三个表格分区标签本身没有任何样式,仅仅是一个区块划分标记罢了 除了可以对表格进行分区控制外,还可以对每一列进行分组,这样可以快速的进行设置,提高效率 表格的分区与分组控制岛国明星TOP50排行榜<!– :可以对一列进行整体控制…

    好文分享 2025年12月21日
    000

发表回复

登录后才能评论
关注微信