JS瀑布流效果-布局

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>JS瀑布流效果-布局</title>
    <style>
        * {
            margin: 0px;
            padding: 0px;
        }

        #container {
            position: relative;
        }

        .box {
            padding: 5px;
            float: left;
        }

        .box_img {
            padding: 5px;
            border: 1px solid #cccccc;
            box-shadow: 0 0 5px #ccc;
            border-radius: 5px;
        }

            .box_img img {
                width: 150px;
                height: auto;
            }
    </style>
</head>
<body>
    <div id="container">
        <div class="box">
            <div class="box_img">
                <img src="/Scripts/img/img1/1.jpg" />
            </div>
        </div>

        <div class="box">
            <div class="box_img">
                <img src="/Scripts/img/img1/2.jpg" />
            </div>
        </div>

        <div class="box">
            <div class="box_img">
                <img src="/Scripts/img/img1/3.jpg" />
            </div>
        </div>

        <div class="box">
            <div class="box_img">
                <img src="/Scripts/img/img1/4.jpg" />
            </div>
        </div>

        <div class="box">
            <div class="box_img">
                <img src="/Scripts/img/img1/5.jpg" />
            </div>
        </div>

        <div class="box">
            <div class="box_img">
                <img src="/Scripts/img/img1/6.jpg" />
            </div>
        </div>

        <div class="box">
            <div class="box_img">
                <img src="/Scripts/img/img1/7.jpg" />
            </div>
        </div>

        <div class="box">
            <div class="box_img">
                <img src="/Scripts/img/img1/8.jpg" />
            </div>
        </div>

        <div class="box">
            <div class="box_img">
                <img src="/Scripts/img/img1/9.jpg" />
            </div>
        </div>

        <div class="box">
            <div class="box_img">
                <img src="/Scripts/img/img1/10.jpg" />
            </div>
        </div>
    </div>

    <script>
        window.onload = function () {
            imgLocation("container", "box");
        }
        function imgLocation(parent, content) {
            //将parent下的所有的content全部取出
            var cparent = document.getElementById(parent);
            var ccontent = getChildElement(cparent, content);
            console.log(ccontent);
            var imgWidth = ccontent[0].offsetWidth;
            var cols = Math.floor(document.documentElement.clientWidth / imgWidth);
            cparent.style.cssText = "width:" + imgWidth * cols + "px;margin:0px auto;";
        }
        function getChildElement(parent, content) {
            var contentArr = [];
            var allConnect = parent.getElementByTagName("*");
            for (var i = 0; i < allConnect.length; i++) {
                if (allConnect[i].className == content) {
                    contentArr.push(allConnect[i]);
                }
            }
            return contentArr;
        }
    </script>
</body>
</html>

原文地址:https://www.cnblogs.com/kikyoqiang/p/11247688.html

时间: 2024-12-10 23:43:48

JS瀑布流效果-布局的相关文章

面向对象js瀑布流效果

index.html <!doctype html><html lang="en"> <head>  <!--网站编码格式,UTF-8 国际编码,GBK或 gb2312 中文编码-->  <meta charset="UTF-8">  <meta name="Keywords" content="">  <meta name="Descri

JS瀑布流效果

本篇内容实现类似百度图片的呈现功能,瀑布流+自动加载 index13.html 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>uvi</title> 6 <link rel="stylesheet" href="style2.css" type="text/css&q

一步步教你js原生瀑布流效果实现

一步步教你js原生瀑布流效果实现 什么是瀑布流效果 首先,让我们先看一段动画: 在动画中,我们不难发现,这个动画有以下特点: 1.所有的图片的宽度都是一样的 2.所有的图片的高度是不一样的 3.图片一张挨着一张竖直排列 4.鼠标向下滚动,一直不停的加载图片 5.浏览器的宽度改变,图片的列数会进行相应的更改 那么这种效果类似现实生活中的瀑布,所以我们叫它瀑布流的效果. Js原生瀑布流效果的实现 从上述分析中,我们可以把整个效果分为以下四个部分: html+css界面搭建 瀑布流效果 浏览器向下滚动

利用JS实现简单的瀑布流效果

哈哈, 我又来啦, 在这一段时间里, 我简单的学习了一下javascript(JS), 虽然不是很懂啦, 但是我也简单的尝试着做了点小东西, 就比如现在流行的瀑布流效果, 经过我的努力终于成功的完成了, 虽然中间非常的坎坷, 并不是一帆风顺但是最终我还是实现了个简单的效果, 下面就为大家简单的介绍下, 不知道的友友们, 有兴趣的话, 可以来参考下, 欢迎指出缺点和不足! 一.瀑布流之准备工作   首先声明下, 为了方便演示和联系, 我使用的是本地图片, 如果大家有需要的话可以尝试着写下网络的,

【前端】用jQuery实现瀑布流效果

jQuery实现瀑布流效果 何为瀑布流: 瀑布流,又称瀑布流式布局.是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部.最早采用此布局的网站是Pinterest,逐渐在国内流行开来.国内大多数清新站基本为这类风格. 瀑布流的应用: 瀑布流对于图片的展现,是高效而具有吸引力的,用户一眼扫过的快速阅读模式可以在短时间内获得更多的信息量,而瀑布流里懒加载模式又避免了用户鼠标点击的翻页操作,瀑布流的主要特性便是错落有致,定宽而不

瀑布流式布局

今天终于搞懂了瀑布流式布局,哈哈,总结下 瀑布流式布局分为两种类型:1.每一列都限定宽度不限定高度的布局(使用浮动)2.宽度不是写死的,是根据页面的放大缩小变化的(定位布局) 瀑布流式布局的重点是:每个新加载的模块都应该显示在原有模块高度最小的下方 注意事项: 图片:接收到的数据在插入到文档的过程中,可能会因为图片的加载速度影响Li的最小高度,可以等图片加载完触发某个事件,再继续加载图片(还未研究出):可以设置图片的相对宽高; 什么时候鼠标滚动的时候继续加载数据:当最小高度的模块显示在文档可视区

用jQuery实现瀑布流效果学习笔记

jQuery一直没系统的学,只知道是js库,封装了好多js函数,方便了开发.以前做过一个原生的图片网站瀑布流效果,超级麻烦,这次用了jQuery方法,瞬间代码浓缩了,只有56行js代码.神奇的让我来把其中的几个函数具体记录一下. 首先,在WebStorm中新建一个工程,导入jquery库和几张img放在img文件夹下,新建html和css文件,用来搭建基本的网页结构.我们设定图片的宽度固定,高度不定,绝对定位,左浮动.这里就不细说了.我们主要讲jquery部分的知识. 这里我们讲一下我们要实现的

实现瀑布流式布局的几种方法

1.传统多列浮动 定义多个div左浮动成多列,在每个div里插入一推也是左浮动的div.于是就实现了那种参差不齐的效果. 2.直接用css3样式实现 定义一个div直接设置它的属性(column-count:列数),把那些小块div放在这个大的div中就能实现这种瀑布流效果. 但这种css3属性在一些低级浏览器可能无法实现. 3.绝对布局方式实现 实现效果最优,但最麻烦. 需要实现知道数据块高度,如果其中包含图片,需要知道图片高度: JS 动态计算数据块位置,当窗口缩放频繁,可能会狂耗性能. 具

Jquery瀑布流效果(下篇)

接着上篇瀑布流效果说(上篇地址为http://www.cnblogs.com/jiaojiaome/articles/4123586.html). 第一个文件myself实现了瀑布流的效果,但是存在可以优化的地方. 比如initial方法,第一次刚加载的时候调用initial方法从第一张慢慢布局是没有问题的. but,后面拖动滚动后,如果满足条件,继续加载其他的,加载毕后再次调用initial()方法, 这里是可以优化的,因为之前的元素已经布局好了,不需要重新布局.所以可以从后面的元素开始 本篇