将行附加到 table 并滚动到页面底部的错误
Bugs appending rows to table and scrolling to bottom of page
在此处编码并在下面重复:http://codepen.io/anon/pen/rLvBbA
重复单击 "add rows" link。添加行后通常需要几秒钟才能滚动到页面底部,有时它会立即滚动。
我不知道是不是 jquery 的 animate 有时会立即滚动而不是持续一段时间,或者有时浏览器可能会立即滚动到底部?这种行为似乎在 Chrome 和 Safari(不规则)上以一种方式被破坏,而在 Firefox 上则有所不同(似乎在第一页加载时有效,但之后就中断了)。
HTML:
<table>
</table>
<a href="javascript:(addRows())">Add rows</a>
CSS:
body {
padding: 100px;
}
td {
padding: 10px 20px;
border: 1px solid #ccc;
}
tr.level-WARN {
background-color: #FFB347;
}
Javascript:
$(document).ready(function() {
addRows();
addRows();
addRows();
addRows();
});
function addRows() {
for (var x = 0; x<5; x++) {
var row = $('<tr/>');
row.append($('<td/>').text('This is some table cell content.'));
if (Math.floor(Math.random() * 10) == 0) {
row.addClass('level-WARN');
} else {
row.addClass('level-INFO');
}
$('table').append(row);
}
$("html, body").animate({ scrollTop: $(document).height() }, 3000);
}
当你打电话时:
addRows();
之前的动画无法完成,因此您可以添加一个 jQuery stop 以停止当前的 运行 动画并开始新的动画。
我的片段:
function addRows() {
for (var x = 0; x<5; x++) {
var row = $('<tr/>');
row.append($('<td/>').text('This is some table cell content.'));
if (Math.floor(Math.random() * 10) == 0) {
row.addClass('level-WARN');
} else {
row.addClass('level-INFO');
}
$('table').append(row);
}
$("html, body").stop().animate({ scrollTop: $(document).height() }, 3000);
}
$(function () {
addRows();
addRows();
addRows();
addRows();
});
body {
padding: 100px;
}
td {
padding: 10px 20px;
border: 1px solid #ccc;
}
tr.level-WARN {
background-color: #FFB347;
}
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<table>
</table>
<a href="javascript:(addRows())">Add rows</a>
在此处编码并在下面重复:http://codepen.io/anon/pen/rLvBbA
重复单击 "add rows" link。添加行后通常需要几秒钟才能滚动到页面底部,有时它会立即滚动。
我不知道是不是 jquery 的 animate 有时会立即滚动而不是持续一段时间,或者有时浏览器可能会立即滚动到底部?这种行为似乎在 Chrome 和 Safari(不规则)上以一种方式被破坏,而在 Firefox 上则有所不同(似乎在第一页加载时有效,但之后就中断了)。
HTML:
<table>
</table>
<a href="javascript:(addRows())">Add rows</a>
CSS:
body {
padding: 100px;
}
td {
padding: 10px 20px;
border: 1px solid #ccc;
}
tr.level-WARN {
background-color: #FFB347;
}
Javascript:
$(document).ready(function() {
addRows();
addRows();
addRows();
addRows();
});
function addRows() {
for (var x = 0; x<5; x++) {
var row = $('<tr/>');
row.append($('<td/>').text('This is some table cell content.'));
if (Math.floor(Math.random() * 10) == 0) {
row.addClass('level-WARN');
} else {
row.addClass('level-INFO');
}
$('table').append(row);
}
$("html, body").animate({ scrollTop: $(document).height() }, 3000);
}
当你打电话时:
addRows();
之前的动画无法完成,因此您可以添加一个 jQuery stop 以停止当前的 运行 动画并开始新的动画。
我的片段:
function addRows() {
for (var x = 0; x<5; x++) {
var row = $('<tr/>');
row.append($('<td/>').text('This is some table cell content.'));
if (Math.floor(Math.random() * 10) == 0) {
row.addClass('level-WARN');
} else {
row.addClass('level-INFO');
}
$('table').append(row);
}
$("html, body").stop().animate({ scrollTop: $(document).height() }, 3000);
}
$(function () {
addRows();
addRows();
addRows();
addRows();
});
body {
padding: 100px;
}
td {
padding: 10px 20px;
border: 1px solid #ccc;
}
tr.level-WARN {
background-color: #FFB347;
}
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<table>
</table>
<a href="javascript:(addRows())">Add rows</a>