• 固定标题和左侧栏的表格初试


    记得曾经做过一个公交查询系统的二期开发,其中一个模块要求固定标题和左侧栏,当时不知道是哪根筋抽了,一门心思想着position:fixed;在margin:0;padding0;还是可以用的,但是当margin和padding改变值以后就不能用了,以至于弄了一天都没弄出个啥,好在当时要求不高,还是勉强通过了技术总监的要求;现在想起来,从新做个测试,呀哈!居然很轻易的弄出来了。具体思路如下:

    布局用三个div块实现,标题块,侧边栏块,内容块,块的内容用table表格实现

    1.外部采用相对定位,内部标题和侧边栏采用绝对定位,内容部分用margin

    2.当外部模块滚动条滚动时,

    标题

    oTop.style.left=oMain.offsetLeft+'px';
    oTop.style.top=scrolltop+'px';

    侧边栏

    oLeft.style.left=scrollleft+'px';
    oLeft.style.top=oMain.offsetTop-32+'px';

    css代码如下

    <style>
    *{margin: 0;padding: 0;}
    div.container_table{position: relative; 800px; height: 250px;overflow: scroll;z-index: 999;margin: 100px auto;}
    div.topTitle{position: absolute;left: 103px; top: 0; 1020px;height: 30px;background: red;}
    div.topTitle table tr{ 1200px;height: 30px;}
    div.topTitle table tr th{ 100px;height: 30px;text-align: center;font-size: 20px;border: 1px solid #ccc;float: left;}
    div.leftTitle{position: absolute;left: 0; top: 0px; 104px; height: 385px;background: blue;}
    div.leftTitle table{ 100px;}
    div.leftTitle table tr{100px;height: 300px;border: 1px solid #ccc;}
    div.leftTitle table tr td{ 100px;height: 30px;border:1px solid #ccc;float: left;border-collapse: collapse;text-align: center;}
    div.mainContent{ 1020px; height: 352px;background: yellow;margin: 31px 0 0 103px;}
    div.mainContent table tr{ 1200px;height: 30px;}
    div.mainContent table tr td{ 100px;height: 30px;text-align: center;font-size: 20px;border: 1px solid #ccc;float: left;}
    div.mainContent table,div.topTitle table,div.leftTitle table{border-collapse: collapse;}
    </style>

    html代码如下:

    <body>
    <div class="container_table" id="container_table">
    <div class="topTitle" id="topTitle">
    <table>
    <tr>
    <th>1</th>
    <th>2</th>
    <th>3</th>
    <th>4</th>
    <th>5</th>
    <th>6</th>
    <th>7</th>
    <th>8</th>
    <th>9</th>
    <th>10</th>
    </tr>
    </table>
    </div>
    <div class="leftTitle" id="leftTitle">
    <table>
    <tr>
    <td>表格</td>
    <td>1</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
    <td>5</td>
    <td>6</td>
    <td>7</td>
    <td>8</td>
    <td>9</td>
    <td>10</td>
    <td>11</td>
    </tr>
    </table>
    </div>
    <div class="mainContent" id="mainContent">
    <table>
    <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
    <td>5</td>
    <td>6</td>
    <td>7</td>
    <td>8</td>
    <td>9</td>
    <td>10</td>
    </tr>
    <tr>
    <td>21</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
    <td>5</td>
    <td>6</td>
    <td>7</td>
    <td>8</td>
    <td>9</td>
    <td>10</td>
    </tr>
    <tr>
    <td>31</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
    <td>5</td>
    <td>6</td>
    <td>7</td>
    <td>8</td>
    <td>9</td>
    <td>10</td>
    </tr>
    <tr>
    <td>41</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
    <td>5</td>
    <td>6</td>
    <td>7</td>
    <td>8</td>
    <td>9</td>
    <td>10</td>
    </tr>
    <tr>
    <td>51</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
    <td>5</td>
    <td>6</td>
    <td>7</td>
    <td>8</td>
    <td>9</td>
    <td>10</td>
    </tr>
    <tr>
    <td>61</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
    <td>5</td>
    <td>6</td>
    <td>7</td>
    <td>8</td>
    <td>9</td>
    <td>10</td>
    </tr>
    <tr>
    <td>71</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
    <td>5</td>
    <td>6</td>
    <td>7</td>
    <td>8</td>
    <td>9</td>
    <td>10</td>
    </tr>
    <tr>
    <td>81</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
    <td>5</td>
    <td>6</td>
    <td>7</td>
    <td>8</td>
    <td>9</td>
    <td>10</td>
    </tr>
    <tr>
    <td>91</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
    <td>5</td>
    <td>6</td>
    <td>7</td>
    <td>8</td>
    <td>9</td>
    <td>10</td>
    </tr>
    <tr>
    <td>101</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
    <td>5</td>
    <td>6</td>
    <td>7</td>
    <td>8</td>
    <td>9</td>
    <td>10</td>
    </tr>
    <tr>
    <td>111</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
    <td>5</td>
    <td>6</td>
    <td>7</td>
    <td>8</td>
    <td>9</td>
    <td>10</td>
    </tr>
    </table>
    </div>
    </div>
    </body>

    js代码如下:

    <script>
    window.onload=function(){
    var oTable=document.getElementById('container_table');
    var oMain=document.getElementById('mainContent');
    var oTop=document.getElementById('topTitle');
    var oLeft=document.getElementById('leftTitle');
    oTable.onscroll=function(){
    var scrolltop=oTable.scrollTop;
    var scrollleft=oTable.scrollLeft;

    // console.log(scrollleft,scrolltop);
    oTop.style.left=oMain.offsetLeft+'px';
    oTop.style.top=scrolltop+'px';
    console.log(oMain.offsetTop-scrolltop)
    oLeft.style.left=scrollleft+'px';
    oLeft.style.top=oMain.offsetTop-32+'px';
    };
    };
    </script>

    今天只是做个测试,后续会测试响应式表格。to be continued...

  • 相关阅读:
    NopCommerce 增加 Customer Settings
    NopCommerce 增加 Customer Attributes
    [转]How to add new table in NopCommerce
    [转]教你一招
    [转]Oracle 修改或者删除临时表 ORA-14452: 试图创建, 更改或删除正在使用的临时表中的索引
    NopCommerce 发布时 Could not load file or assembly 'file:///...Autofac.3.5.2lib et40Autofac.dll' or one of its dependencies
    NopCommerce 关于Customer的会员类别及会员价处理 的尝试途径
    诸葛亮-诫子书
    [书目20161206]小狗钱钱的人生整理术
    [转]NopCommerce How to code my own payment method
  • 原文地址:https://www.cnblogs.com/reaf/p/5812132.html
Copyright © 2020-2023  润新知