>  기사  >  웹 프론트엔드  >  JavaScript는 단순히 폭포수 흐름을 구현합니다.

JavaScript는 단순히 폭포수 흐름을 구현합니다.

韦小宝
韦小宝원래의
2018-03-09 15:57:491258검색

폭포 흐름 레이아웃이라고도 알려진 폭포 흐름은 인기 있는 웹사이트 페이지 레이아웃입니다. 일부 학생들은 아직 폭포 흐름이 무엇인지 잘 이해하지 못하고 있다고 생각합니다. 따라서 오늘은 JavaScript에 대해 자세히 설명하겠습니다. 폭포 흐름.

지식:
1. 배열에서 최소값을 찾는 방법
첫 번째는 기본적으로 최소값이며 변수 a가 바인딩됩니다. for 루프를 통해 배열의 다른 값을 비교합니다. 전자가 더 작으면

var arr = [3,52,3,2,-2,-1,20];
        var min = arr[0];
        for (var i = 0; i <  arr.length; i++) {
            if (arr[i] < arr[0]) {
                min = arr[i];
            }
        }
        alert(min);

2. 문서 좌표를 얻는 방법

//获取父元素节点
var op = ele.parentNode;
则ele文档坐标:水平:op.offsetLeft + op.clientLeft + ele.offsetLeft;
             垂直:op.offsetTop + op.clientTop + ele.offsetTop;

3. function

function rnd(min,max) {
return parseInt(Math.random()*(max - min + 1)) + min;
}

4 , Waterfall 흐름 코드

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>瀑布流</title>
    <style type="text/css">
        * {
            padding: 0;
            margin: 0;
        }
        #wrap {
            overflow: hidden;
            margin-top: 100px;
        }
        #wrap li {
            float: left;
            width: 250px;
            font-size: 56px;
            margin: 0 20px;
            list-style-type: none;
        }
        #wrap li p {
            margin-bottom: 20px;
            border: 1px solid red;
            background-color: #ccc;
        }
    </style>
</head>
<body>
    <ul id="wrap">
        <li>
        </li>
        <li>    
        </li>
        <li>    
        </li>
    </ul>
    <p style="height: 1000px;">

    </p>
    <script type="text/javascript">
    var wrap = document.getElementById("wrap");
    var list = wrap.getElementsByTagName("li");

    function rnd(min, max) {
        return parseInt(Math.random()*(max - min + 1)) + min;
    }
    //文档坐标获取
    function getPosition(element) {
        var oP = element.offsetParent;
        var x = element.offsetLeft;
        var y = element.offsetTop;
        while(oP) {
            //水平
            x = oP.clientLeft + x + oP.offsetLeft;
            //竖直
            y = oP.clientTop + y + oP.offsetTop;
            oP = oP.offsetParent;
        }
        return {x:x,y:y}
    }
    function createDiv() {
        for(var j = 0; j < 10; j++) {
            //找最小高度的li那一列
            var minList = list[0];
            for(var i = 0; i < list.length; i++) {
                if(minList.offsetHeight > list[i].offsetHeight) {
                    minList = list[i];
                }
            }
            var newDiv = document.createElement("p");
            newDiv.style.height = rnd(100,200) + "px";
            newDiv.innerHTML = j;
            minList.appendChild(newDiv);//将创建p添加到最新的li那一列
        }
    }
    createDiv();
    //可视区的宽高document.documentElement.clientWidth
    //页面滚动条事件
    window.onscroll = function() {
        var scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
        //wrap的文档坐标+wrap自身高度 跟滚动条scrollTop+可视区高度比较
        if(getPosition(wrap).y + wrap.offsetHeight <= scrollTop + document.documentElement.clientHeight) {
            // alert("到底了");
            createDiv();
        }
    }
    </script>
</body>
</html>

Waterfall 흐름은 웹 사이트 페이지 레이아웃으로, 페이지 스크롤 막대가 아래로 스크롤되면 이 레이아웃이 계속해서 데이터를 로드합니다. 차단하고 현재 꼬리에 추가합니다. 이 레이아웃을 채택한 첫 번째 웹사이트는 Pinterest였으며 중국에서 점차 인기를 얻었습니다. 국내 신규 사이트는 대부분 이런 스타일을 기본으로 하고 있습니다.


위 내용은 JavaScript는 단순히 폭포수 흐름을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.