zoukankan      html  css  js  c++  java
  • js实现table用鼠标改变td的宽度,固定table宽度和高度超过显示点

    <!DOCTYPE HTML>
    <html>
    <head>
        <meta charset="gbk">
        <title>table</title>
        <style>
            .ztable {
                table-layout: fixed;
                font-size: 12px;
                font-family: 微软雅黑;
                border-right: 1px solid #D4D4D4;
                border-bottom: 1px solid #D4D4D4;
            }
    
                .ztable th {
                    background-color: #F0F0F0;
                    height: 20px;
                    text-overflow: ellipsis;
                    white-space: nowrap;
                    overflow: hidden;
                    border-left: 1px solid #D4D4D4;
                    border-top: 1px solid #D4D4D4;
                }
    
                .ztable td {
                    border-left: 1px solid #D4D4D4;
                    border-top: 1px solid #D4D4D4;
                    height: 20px;
                    text-overflow: ellipsis;
                    white-space: nowrap;
                    overflow: hidden;
                }
        </style>
    </head>
    <body>
        <table id="tb_1" cellspacing="0" cellpadding="0" width="600" class="ztable">
            <tbody>
                <tr align="center">
                    <th style=" 100px;">用户编号</th>
                    <th style=" 100px;">试用时间</th>
                    <th style=" 100px;">转正时间</th>
                    <th style=" 100px;">性别</th>
                    <th>姓名拼音</th>
                    <th>生日时间</th>
                    <th>民族</th>
                    <th>身高</th>
                </tr>
                <tr>
                    <td>2000001</td>
                    <td>1997-3-13</td>
                    <td>1997-3-13</td>
                    <td>1</td>
                    <td>WZJ</td>
                    <td>1965-3-13</td>
                    <td></td>
                    <td>171</td>
                </tr>
                <tr>
                    <td>2000045</td>
                    <td>2001-2-15</td>
                    <td>2001-3-15</td>
                    <td>0</td>
                    <td>WY</td>
                    <td>1978-8-5</td>
                    <td></td>
                    <td>162</td>
                </tr>
                <tr>
                    <td>2000046</td>
                    <td>2001-2-23</td>
                    <td>2001-3-23</td>
                    <td>0</td>
                    <td>LQ</td>
                    <td>2001-2-23</td>
                    <td></td>
                    <td>171</td>
                </tr>
            </tbody>
        </table>
        <script type="text/javascript">
            var tTD; //用来存储当前更改宽度的Table Cell,避免快速移动鼠标的问题 
            var table = document.getElementById("tb_1");
            for (j = 0; j < table.rows[0].cells.length; j++) {
                table.rows[0].cells[j].onmousedown = function () {
                    //记录单元格 
                    tTD = this;
                    if (event.offsetX > tTD.offsetWidth - 10) {
                        tTD.mouseDown = true;
                        tTD.oldX = event.x;
                        tTD.oldWidth = tTD.offsetWidth;
                    }
                    //记录Table宽度 
                    //table = tTD; while (table.tagName != ‘TABLE') table = table.parentElement; 
                    //tTD.tableWidth = table.offsetWidth; 
                };
                table.rows[0].cells[j].onmouseup = function () {
                    //结束宽度调整 
                    if (tTD == undefined) tTD = this;
                    tTD.mouseDown = false;
                    tTD.style.cursor = 'default';
                };
                table.rows[0].cells[j].onmousemove = function () {
                    //更改鼠标样式 
                    if (event.offsetX > this.offsetWidth - 10)
                        this.style.cursor = 'col-resize';
                    else
                        this.style.cursor = 'default';
                    //取出暂存的Table Cell 
                    if (tTD == undefined) tTD = this;
                    //调整宽度 
                    if (tTD.mouseDown != null && tTD.mouseDown == true) {
                        tTD.style.cursor = 'default';
                        if (tTD.oldWidth + (event.x - tTD.oldX) > 0)
                            tTD.width = tTD.oldWidth + (event.x - tTD.oldX);
                        //调整列宽 
                        tTD.style.width = tTD.width;
                        tTD.style.cursor = 'col-resize';
                        //调整该列中的每个Cell 
                        table = tTD; while (table.tagName != 'TABLE') table = table.parentElement;
                        for (j = 0; j < table.rows.length; j++) {
                            table.rows[j].cells[tTD.cellIndex].width = tTD.width;
                        }
                        //调整整个表 
                        //table.width = tTD.tableWidth + (tTD.offsetWidth – tTD.oldWidth); 
                        //table.style.width = table.width; 
                    }
                };
            }
        </script>
    </body>
    </html>

  • 相关阅读:
    [悟]你为什么想创业
    [悟] 因上努力,果上随缘
    自己写个多任务多线程断点下载框架
    大道甚夷,而人好径
    [经验帖]外包如何定价
    python 基础语法
    python 中文编码问题
    python的运行机制和版本区别
    [转]linux 调用动态库so文件
    shell join详解
  • 原文地址:https://www.cnblogs.com/q149072205/p/4097233.html
Copyright © 2011-2022 走看看