使身体可滚动

时间:2015-09-11 21:08:42

标签: javascript html css scroll

我用javascript创建了一个表:

t=document.getElementById('tabby');

for(var k=1; k<=100; k++)
{
t.innerHTML+="<tr> <td> hello </td> </tr>";
}   

事情是,页面不可滚动。 (这很有意义。当页面加载时,表格并不存在。)

要解决这个问题,我在桌子形成后尝试设置主体的溢出来滚动:

document.getElementById('body').setAttribute('style', 'overflow:scroll;');

但它没有帮助。 (当然身体的身份是&#34;身体&#34;而桌子是&#34;虎斑&#34;)

我该怎么办?

感谢。

修改

哎呦。 似乎是位置:绝对;我摆出桌子的风格正在惹麻烦。

https://jsfiddle.net/t66dp7oc/

那么,如果我需要绝对位置以及页面可滚动,我该怎么办?

5 个答案:

答案 0 :(得分:2)

我可能没有完全解决你的问题,但这是你可以尝试的表格。这对我来说似乎是最好的解决方案。只是尝试在循环外创建变量:

function tableCreate() {
    var body = document.getElementsByTagName('body')[0];
    var tbl = document.createElement('table');
    tbl.style.width = '100%';
    tbl.setAttribute('border', '1');
    var tbdy = document.createElement('tbody');
    for (var i = 0; i < 3; i++) {
        var tr = document.createElement('tr');
        for (var j = 0; j < 2; j++) {
            if (i == 2 && j == 1) {
                break
            } else {
                var td = document.createElement('td');
                td.appendChild(document.createTextNode('\u0020'))
                i == 1 && j == 1 ? td.setAttribute('rowSpan', '2') : null;
                tr.appendChild(td)
            }
        }
        tbdy.appendChild(tr);
    }
    tbl.appendChild(tbdy);
    body.appendChild(tbl)
}

答案 1 :(得分:1)

overflow属性不适用于表。

因此,您可以将表格的display更改为blockinline-block

table {
  display: block;
  overflow: scroll;
}

请注意,这可能会破坏一些表格功能。

var t = document.createElement('table'),
    tr = document.createElement('tr');
tr.innerHTML = '<td>Hello</td>';
for(var i=0; i<100; ++i)
  t.appendChild(tr.cloneNode(true));
document.body.appendChild(t);
table {
  display: block;
  overflow: scroll;
  height: 100px;
}

答案 2 :(得分:0)

你应该这样做:

document.body.setAttribute('style', 'overflow:scroll;');

答案 3 :(得分:0)

试试这个。

var tableRows = '';
for (var i = 0; i <= 100; i++) {
  tableRows += "<tr> <td> hello </td> </tr>";
}
var tabby = document.getElementById('tabby');
tabby.innerHTML = tableRows;

另外,我建议使用jQuery这样的东西。它只是让它变得更容易。

答案 4 :(得分:0)

我知道了。

我所要做的就是用div包装表,并给div设置绝对属性。至于表格,我给它的位置是:相对的;属性。效果很好。