随机排列

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div class="warp" id="warp"></div>
<div style="text-align: center">
    <button type="button" id="chang">chang</button>
</div>
<style>
    * {
        padding: 0px;
        margin: 0px
    }
    .warp {
        position: relative;
        width: 210px;
        height: 210px;
        margin: auto;
        background-color: aliceblue;
        font-size: 0;
    }
    .warp span {
        transition: all linear .5s;
        position: absolute;
        display: inline-block;
        width: 20px;
        height: 20px;
        border: 1px solid #cccccc;
        font-size: 12px;
        text-align: center;
        line-height: 20px;
        overflow: hidden;
    }
</style>
<script>
    let fragment = document.createDocumentFragment();
    for (let i = 0; i < 100; i++) {
        let span = document.createElement('span');
        let text = document.createTextNode(i);
        span.appendChild(text);
        fragment.appendChild(span);
    }
    let warp = document.getElementById('warp');
    warp.appendChild(fragment);
    let spanlist = warp.getElementsByTagName('span');
    let arr = [];
    getpos();
    changpos();
    function getpos() {
        for (let i = 1; i <= 10; i++) {//行
            for (let j = 1; j <= 10; j++) {//列
                let posleft = (i - 1) * 21 + 'px';
                let postop = (j - 1) * 21 + 'px';
                let posi = [posleft, postop]
                arr.push(posi);
            }
        }
    }
    function changpos() {
        for (let i = 0; i < 100; i++) {//行
            elspan = spanlist[i];
            elspan.style.top = arr[i][0];
            elspan.style.left = arr[i][1];
        }
    }
    function changarr() {
        arr.sort(function () {
            return Math.random() > .5 ? -1 : 1;
        })
        changpos();
    }
    document.getElementById('chang').addEventListener('click', changarr);
</script>
</body>
</html>

 

来源

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值