JS实现九宫格自定义功能

JS代码段

算法分析

根据九宫格盒子的行数和列数,解决盒子内部的定位问题

实际功能:自定义页面显示几行几列

口诀:
1,利用控件的索引index计算出控件所在的行号和列号
2,利用列好计算出控件的left距离
3,利用行号计算出控件的top距离

<script>
            window.onload = function () {
            //    1.获取标签
                var btns = document.getElementById("top").children;
                var bottom = document.getElementById("bottom");
            //    2.监听按钮点击
                btns[0].onclick = function () {
                    //    2.1定义变量
                    j_flex(3, bottom);
                };
                btns[1].onclick = function () {
                    //    2.1定义变量
                    j_flex(4, bottom);
                };
                btns[2].onclick = function () {
                    //    2.1定义变量
                    j_flex(5, bottom);
                };


                    function j_flex(allCols, parentNode) {
                            var boxW = 220 , boxH = 360, marginXY = 15;

                            //    2.2 遍历
                            for(var i=0; i < parentNode.children.length; i++){
                                //    2.2.1 求出当前盒子所在的行和列
                                var row = parseInt(i / allCols);
                                var col = parseInt(i % allCols);

                                console.log("当前盒子在第"+row+",第"+col);

                                //    2.2.2 盒子定位3列
                                var currentBox = parentNode.children[i];
                                currentBox.style.position = 'absolute';
                                currentBox.style.left = col * (boxW + marginXY)+'px';
                                currentBox.style.top = row * (boxH + marginXY)+'px';

                            };

                    }
                }

        </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值