项目场景:
bootstrap 表格垂直循环滚动
问题描述
用户希望多条数据时实现循环滚动展示
实现方法1:
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Bootstrap 101 Template</title>
<link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css">
<style type="text/css">
.content {
width: 500px;
margin: 50px 50px;
}
.header {
line-height: 50px;
background-color: #ECECEC;
}
.data {
height: 300px;
overflow: hidden;
}
</style>
</head>
<body>
<div class="content">
<div class="header row">
<div class="col-md-3">姓名</div>
<div class="col-md-3">性别</div>
<div class="col-md-3">年龄</div>
<div class="col-md-3">职业</div>
</div>
<div class="data">
<div class="data-content">
<table id="table1" class="table table-hover">
</table>
</div>
<div class="data-footer"></div>
</div>
</div>
<script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>
<script src="http://cdn.bootcss.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
<script type="text/javascript">
var html = '';
for(var i = 0; i < 15; i++) {
html += '<tr>';
html += '<td>数学' + i + '</td>';
if(i % 2 == 0) {
html += '<td>男</td>';
} else {
html += '<td>女</td>';
}
html += '<td>' + (10 + i) + '</td>';
html += '<td>数学老师</td>';
html += '</tr>';
}
$('#table1').html(html);
$('td').addClass('col-md-3');
//setTimeout(function() {
//alert('1111');
tabAutoScroll("table1", 12)
//},3000);
//table id及最大显示行数
function tabAutoScroll(tabid, rowcount) {
var listPanel = $('#'+ tabid);
var nubcers = 0; // 向上滚动top值
var rowCount = listPanel.find('tr').length;
var maxRowCount = rowcount; // 最大显示行数
function up() { // 向上滚动
if (rowCount > maxRowCount) {
listPanel.animate({'transform': 'translateY(-30px)'}, 2000, 'linear', function() {
listPanel.css('transform', 'translateY(0)').find("tr:first").appendTo(listPanel);
up();
});
}
}
up();
$("#table1 tr").mousemove(function() {
$('#table1').stop(true);
});
$("#table1 tr").mouseleave(function() {
up();
});
}
</script>
</body>
</html>
实现方法2:
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Bootstrap 101 Template</title>
<link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css">
<style type="text/css">
.content {
width: 500px;
margin: 50px 50px;
}
.header {
line-height: 50px;
background-color: #ECECEC;
}
.data {
height: 300px;
overflow: hidden;
}
</style>
</head>
<body>
<div class="content">
<div class="header row">
<div class="col-md-3">姓名</div>
<div class="col-md-3">性别</div>
<div class="col-md-3">年龄</div>
<div class="col-md-3">职业</div>
</div>
<div class="data">
<div class="data-content">
<table class="table table-hover">
</table>
</div>
<div class="data-footer"></div>
</div>
</div>
<script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>
<script src="http://cdn.bootcss.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
<script type="text/javascript">
var html = '';
for(var i = 0; i < 15; i++) {
html += '<tr>';
html += '<td>数学' + i + '</td>';
if(i % 2 == 0) {
html += '<td>男</td>';
} else {
html += '<td>女</td>';
}
html += '<td>' + (10 + i) + '</td>';
html += '<td>数学老师</td>';
html += '</tr>';
}
$('.table').html(html);
$('td').addClass('col-md-3');
var dataDOM = $('.data')[0];
var dataContentDOM = $('.data-content')[0];
var dataFooterDOM = $('.data-footer')[0];
var height = dataDOM.offsetTop + dataDOM.offsetHeight;
setInterval(function() {
if(dataFooterDOM.offsetTop - dataDOM.scrollTop - height <= 0) {
dataDOM.scrollTop -= dataContentDOM.offsetHeight;
} else {
dataDOM.scrollTop++;
}
}, 20);
</script>
</body>
</html>