Wednesday, April 13, 2022

Dynamic Table Fixed table Header on scroll and Fixed table column on scroll ***** Complete Code **** PURE CSS


With CSS

<!DOCTYPE html>
<html>
<head>
    <style>
        .testing1, .testing {
            display: none;
        }

        .tbl-container {
            height:600px;
            width:700px;
            overflow:scroll;
        }
        .repeat-table {
            width:120%;
            border-spacing:0;
        }
            .repeat-table th {
                position: sticky;
                top: 0px;
                z-index: 1;
                background-color: lightpink;
            }
            .repeat-table th, .repeat-table td {
                border: 1px solid gray;
            }
                .repeat-table th, .repeat-table td {
                width: 160px;
            }
                .repeat-table th:nth-child(1), .repeat-table td:nth-child(1) {
                    position: sticky;
                    top: 0;
                    left:0;
                    background-color:pink;
                }
                    .repeat-table th:nth-child(1) {
                        position: sticky;
                        top: 0;
                        left: 0;
                        background-color: pink;
                        z-index:4;
                    }
    </style>
</head>
<body>
    <div class="tbl-container">
        <table class="repeat-table">
            <tr>
                <th>abcID</th>
                <th>abcID</th>
                <th>abcID</th>
                <th>abcID</th>
                <th>abcID</th>
                <th>abcID</th>
                <th>abcID</th>
                <th>abcID</th>
                <th>abcID</th>
                <th>abcID</th>
                <th>abcID abcID.</th>
                <th>abcIDTo</th>
                <th>abcIDCust.</th>
                <th>abcID</th>
                <th>345</th>
                <th>abcID</th>
                <th>abcID</th>
                <th colspan="3">Qty</th>
            </tr>
            <tr>
                <td>xyz</td>
                <td>xyz-xyz</td>
                <td>xyz</td>
                <td>xyz-xyz</td>
                <td>xyz</td>
                <td>xyz--xyz</td>
                <td>xyz</td>
                <td>xyz</td>
                <td>xyz</td>
                <td>xyz</td>
                <td>xyz-WX</td>
                <td>xyz</td>
                <td>xyz-WX</td>
                <td>xyz</td>
                <td>01/xyz</td>
                <td>xyz</td>
                <td>xyz</td>
                <td></td>
                <td>
                    
                </td>
                <td>
                    
                </td>
            </tr>
             <tr>
                <td>xyz</td>
                <td>xyz-xyz</td>
                <td>xyz</td>
                <td>xyz-xyz</td>
                <td>xyz</td>
                <td>xyz--xyz</td>
                <td>xyz</td>
                <td>xyz</td>
                <td>xyz</td>
                <td>xyz</td>
                <td>xyz-WX</td>
                <td>xyz</td>
                <td>xyz-WX</td>
                <td>xyz</td>
                <td>01/xyz</td>
                <td>xyz</td>
                <td>xyz</td>
                <td></td>
                <td>
                    
                </td>
                <td>
                    
                </td>
            </tr>
        </table>
    </div>
</body>
</html>


With JavaScript:

Dynamic Table / No limit of column/ Fixed table Header on scroll and Fixed table column on scroll ***** Complete Code ****

<!DOCTYPE html>

<html>

<head>

    <style>


        div.relative {

            position: relative;

            width: 600px;

            height: 250px;

            overflow-x: scroll;

            border: 1px solid #73AD21;

        }


        .ashTest {

            position: absolute;

            background-color: #d59b9b;

        }

        .scrollHead {

            position: absolute;

            background-color: #d59b9b;

        }

    </style>

</head>

<body>

    <div class="mainPar">

        <div class="relative" id="relative" onscroll="xyz()">

            <table class="scrollHead" id="scrollHeadF" style="z-index:1; background-color:brown">

                <tr>

                    <th >TYPE</th>

                </tr>

            </table>

            <table class="scrollHead" id="scrollHead">

                <tr>

                    <th style="width:90px">TYPE</th>

                    <th style="width:90px">AMC</th>

                    <th style="width:90px">AME</th>

                    <th style="width:90px">AMJ</th>

                    <th style="width:90px">AMK</th>

                    <th style="width:90px">AMNA</th>

                    <th style="width:90px">AMSEA</th>

                    <th style="width:90px">AMT</th>

                    <th style="width:90px">OTHERS</th>

                    <th style="width:90px">TYPE</th>

                    <th style="width:90px">AMC</th>

                    <th style="width:90px">AME</th>

                    <th style="width:90px">AMJ</th>

                    <th style="width:90px">AMK</th>

                    <th style="width:90px">AMNA</th>

                    <th style="width:90px">AMSEA</th>

                    <th style="width:90px">AMT</th>

                    <th style="width:90px">OTHERS</th>

                </tr>

            </table>

            <div class="ashTest" id="frozen">

                <table>

                    <tbody>

                        <tr>

                            <th>TYPE</th>

                        </tr>

                        <tr>

                            <th>AShw</th>

                        </tr>

                        <tr>

                            <th>AShw</th>

                        </tr>

                        <tr>

                            <th>AShw</th>

                        </tr>

                        <tr>

                            <th>AShw</th>

                        </tr>

                        <tr>

                            <th>AShw</th>

                        </tr>

                        <tr>

                            <th>AShw</th>

                        </tr>

                        <tr>

                            <th>AShw</th>

                        </tr>

                        <tr>

                            <th>AShw</th>

                        </tr>

                        <tr>

                            <th>AShw</th>

                        </tr>

                        <tr>

                            <th>AShw</th>

                        </tr>

                        <tr>

                            <th>AShw</th>

                        </tr>

                    </tbody>

                </table>

            </div>

            <table>

                <tbody>

                    <tr>

                        <th style="width:90px">TYPE</th>

                        <th style="width:90px">AMC</th>

                        <th style="width:90px">AME</th>

                        <th style="width:90px">AMJ</th>

                        <th style="width:90px">AMK</th>

                        <th style="width:90px">AMNA</th>

                        <th style="width:90px">AMSEA</th>

                        <th style="width:90px">AMT</th>

                        <th style="width:90px">OTHERS</th>

                        <th style="width:90px">TYPE</th>

                        <th style="width:90px">AMC</th>

                        <th style="width:90px">AME</th>

                        <th style="width:90px">AMJ</th>

                        <th style="width:90px">AMK</th>

                        <th style="width:90px">AMNA</th>

                        <th style="width:90px">AMSEA</th>

                        <th style="width:90px">AMT</th>

                        <th style="width:90px">OTHERS</th>

                    </tr>

                    <tr ng-repeat="x in LpRgStk" class="ng-scope">

                        <td>OH</td>

                        <td>4</td>

                        <td>0</td>

                        <td>0</td>

                        <td>4</td>

                        <td>0</td>

                        <td>0</td>

                        <td>5</td>

                        <td>0</td>

                        <td>OH</td>

                        <td>4</td>

                        <td>0</td>

                        <td>0</td>

                        <td>4</td>

                        <td>0</td>

                        <td>0</td>

                        <td>5</td>

                        <td>0</td>

                    </tr>

                    <tr>

                        <td>TYPE</td>

                        <td>AMC</td>

                        <td>AME</td>

                        <td>AMJ</td>

                        <td>AMK</td>

                        <td>AMNA</td>

                        <td>AMSEA</td>

                        <td>AMT</td>

                        <td>OtdERS</td>

                        <td>TYPE</td>

                        <td>AMC</td>

                        <td>AME</td>

                        <td>AMJ</td>

                        <td>AMK</td>

                        <td>AMNA</td>

                        <td>AMSEA</td>

                        <td>AMT</td>

                        <td>OtdERS</td>

                    </tr>

                    <tr ng-repeat="x in LpRgStk" class="ng-scope">

                        <td>OH</td>

                        <td>4</td>

                        <td>0</td>

                        <td>0</td>

                        <td>4</td>

                        <td>0</td>

                        <td>0</td>

                        <td>5</td>

                        <td>0</td>

                        <td>OH</td>

                        <td>4</td>

                        <td>0</td>

                        <td>0</td>

                        <td>4</td>

                        <td>0</td>

                        <td>0</td>

                        <td>5</td>

                        <td>0</td>

                    </tr>

                    <tr>

                        <td>TYPE</td>

                        <td>AMC</td>

                        <td>AME</td>

                        <td>AMJ</td>

                        <td>AMK</td>

                        <td>AMNA</td>

                        <td>AMSEA</td>

                        <td>AMT</td>

                        <td>OtdERS</td>

                        <td>TYPE</td>

                        <td>AMC</td>

                        <td>AME</td>

                        <td>AMJ</td>

                        <td>AMK</td>

                        <td>AMNA</td>

                        <td>AMSEA</td>

                        <td>AMT</td>

                        <td>OtdERS</td>

                    </tr>

                    <tr ng-repeat="x in LpRgStk" class="ng-scope">

                        <td>OH</td>

                        <td>4</td>

                        <td>0</td>

                        <td>0</td>

                        <td>4</td>

                        <td>0</td>

                        <td>0</td>

                        <td>5</td>

                        <td>0</td>

                        <td>OH</td>

                        <td>4</td>

                        <td>0</td>

                        <td>0</td>

                        <td>4</td>

                        <td>0</td>

                        <td>0</td>

                        <td>5</td>

                        <td>0</td>

                    </tr>

                    <tr>

                        <td>TYPE</td>

                        <td>AMC</td>

                        <td>AME</td>

                        <td>AMJ</td>

                        <td>AMK</td>

                        <td>AMNA</td>

                        <td>AMSEA</td>

                        <td>AMT</td>

                        <td>OTHERS</td>

                        <td>TYPE</td>

                        <td>AMC</td>

                        <td>AME</td>

                        <td>AMJ</td>

                        <td>AMK</td>

                        <td>AMNA</td>

                        <td>AMSEA</td>

                        <td>AMT</td>

                        <td>OTHERS</td>

                    </tr>

                    <tr ng-repeat="x in LpRgStk" class="ng-scope">

                        <td>OH</td>

                        <td>4</td>

                        <td>0</td>

                        <td>0</td>

                        <td>4</td>

                        <td>0</td>

                        <td>0</td>

                        <td>5</td>

                        <td>0</td>

                        <td>OH</td>

                        <td>4</td>

                        <td>0</td>

                        <td>0</td>

                        <td>4</td>

                        <td>0</td>

                        <td>0</td>

                        <td>5</td>

                        <td>0</td>

                    </tr>

                    <tr>

                        <td>TYPE</td>

                        <td>AMC</td>

                        <td>AME</td>

                        <td>AMJ</td>

                        <td>AMK</td>

                        <td>AMNA</td>

                        <td>AMSEA</td>

                        <td>AMT</td>

                        <td>OTHERS</td>

                        <td>TYPE</td>

                        <td>AMC</td>

                        <td>AME</td>

                        <td>AMJ</td>

                        <td>AMK</td>

                        <td>AMNA</td>

                        <td>AMSEA</td>

                        <td>AMT</td>

                        <td>OTHERS</td>

                    </tr>

                    <tr ng-repeat="x in LpRgStk" class="ng-scope">

                        <td>OH</td>

                        <td>4</td>

                        <td>0</td>

                        <td>0</td>

                        <td>4</td>

                        <td>0</td>

                        <td>0</td>

                        <td>5</td>

                        <td>0</td>

                        <td>OH</td>

                        <td>4</td>

                        <td>0</td>

                        <td>0</td>

                        <td>4</td>

                        <td>0</td>

                        <td>0</td>

                        <td>5</td>

                        <td>0</td>

                    </tr>

                    <tr>

                        <td>TYPE</td>

                        <td>AMC</td>

                        <td>AME</td>

                        <td>AMJ</td>

                        <td>AMK</td>

                        <td>AMNA</td>

                        <td>AMSEA</td>

                        <td>AMT</td>

                        <td>OTHERS</td>

                        <td>TYPE</td>

                        <td>AMC</td>

                        <td>AME</td>

                        <td>AMJ</td>

                        <td>AMK</td>

                        <td>AMNA</td>

                        <td>AMSEA</td>

                        <td>AMT</td>

                        <td>OTHERS</td>

                    </tr>

                    <tr ng-repeat="x in LpRgStk" class="ng-scope">

                        <td>OH</td>

                        <td>4</td>

                        <td>0</td>

                        <td>0</td>

                        <td>4</td>

                        <td>0</td>

                        <td>0</td>

                        <td>5</td>

                        <td>0</td>

                        <td>OH</td>

                        <td>4</td>

                        <td>0</td>

                        <td>0</td>

                        <td>4</td>

                        <td>0</td>

                        <td>0</td>

                        <td>5</td>

                        <td>0</td>

                    </tr>

                </tbody>

            </table>

        </div>

    </div>

    <script type="text/javascript">

        xyz = function () {

            let x = document.getElementById('relative').scrollLeft;

            document.getElementById('frozen').style.left = x + 'px';


            let y = document.getElementById('relative').scrollTop;

            document.getElementById('scrollHead').style.top = y + 'px';


            document.getElementById('scrollHeadF').style.left = x + 'px';

            document.getElementById('scrollHeadF').style.top = y + 'px';

        }

    </script>

</body>

</html>

No comments:

Post a Comment