1.json 数据格式接收循环
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
<head>
<title>table内容连续滚动</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="js/jquery-3.4.1.min.js"></script>
<style type="text/css">
* {padding: 0; margin: 0};
td {height: 28px;}
</style>
</head>
<body bgcolor="#FFFFFF">
<div id="demo3" style="padding-top: 100px;"></div>
<div id="demo1"></div>
<script type="text/javascript">
$(function() {
$.ajax({
type: "get",
url: "employee.json",
success: function(res) {
//alert(JSON.stringify(res));
var str = JSON.stringify(res);
var data = JSON.parse(str); //转JSON对象
var rowCount = data.rows.length; //获取行号
var cellCount = data.columns.length; //获取列数
total=data.total;
var str = JSON.stringify(res);
var data = JSON.parse(str); //转JSON对象
var rowCount = data.rows.length; //获取行号
var cellCount = data.columns.length; //获取列数
//添加表头
var table_H = $("<table width='600' border='1' align='center' cellpadding='0' cellspacing='0' bordercolor='4FBFF9'>"); //看不懂
table_H.appendTo($("#demo3")); //追加到DIV
var trHeader = $("<tr></tr>"); //看不懂
trHeader.appendTo(table_H); //追加到table
for(var j = 0; j < cellCount; j++) {
var td = $("<td>" + data.columns[j].title + "</td>");
td.appendTo(trHeader); //把信息追加到trHeader
}
$("#demo3").append("</table>");
//添加内容
var table_B = $("<table width='600' border='0' align='center' cellpadding='0' cellspacing='0' bordercolor='4FBFF9'>"); //看不懂
table_B.appendTo($("#demo1"));
var tbody = $("<tbody id='test'>");
tbody.appendTo(table_B);
for(var i = 0; i < rowCount; i++) {
var tr = $("<tr></tr>");
tr.appendTo(tbody);
for(var j = 0; j < cellCount; j++) {
var field = data.columns[j].field;
var val = "";
if(data.rows[i][field] != null) {
val = data.rows[i][field];
}
var td = $("<td>" + val + "</td>");
td.appendTo(tr);
}
}
var trbody = $("</tbody>");
trbody.appendTo(table_B);
$("#demo1").append("</table>");
}
});
})
//先在table的最后增加一行,然后再把第一行中的数据填充到新增加的行中,最后再删除table的第一行
function change(table){
var row = table.insertRow(table.rows.length);//在table的最后增加一行,table.rows.length是表格的总行数
for(j=0;j<table.rows[0].cells.length;j++){//循环第一行的所有单元格的数据,让其加到最后新加的一行数据中(注意下标是从0开始的)
var cell = row.insertCell(j);//给新插入的行中添加单元格
cell.height = "24px";//一个单元格的高度,跟css样式中的line-height高度一样
cell.innerHTML = table.rows[0].cells[j].innerHTML;//设置新单元格的内容,这个根据需要,自己设置
}
table.deleteRow(0);//删除table的第一行
};
function tableInterval(){
var table = document.getElementById("test");//获得表格
change(table);//执行表格change函数,删除第一行,最后增加一行,类似行滚动
};
setInterval("tableInterval()",800);//每隔2秒执行一次change函数,相当于table在向上滚动一样
</script>
</body>
</html>
2.html静态页面循环
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<HEAD>
<TITLE>滚动表格</TITLE>
<!--css样式是锁定表头不动的-->
<style type="text/css">
.table{
width: 100%;
left:30%;
border-collapse:collapse;
border-spacing:0;
}
.fixedThead{
display: block;
width: 100%;
}
.scrollTbody{
display: block;
height: 316px;
overflow: hidden;
width: 100%;
}
.table td {
width: 300px;
border-bottom: #333 1px dashed;
padding: 5px;
background-color:#ddd;
}
.table th {
width: 300px;
border-bottom: #333 1px dashed;
border-top: #333 1px dashed;
padding: 5px;
line-height:24px;
background-color:#cfc;
}
.table tr{
border-bottom: #333 1px dashed;
line-height:24px;
padding: 5px;
}
thead.fixedThead tr th:last-child {
color:#FF0000;
}
</style>
<SCRIPT LANGUAGE="JavaScript">
//先在table的最后增加一行,然后再把第一行中的数据填充到新增加的行中,最后再删除table的第一行
function change(table){
var row = table.insertRow(table.rows.length);//在table的最后增加一行,table.rows.length是表格的总行数
for(j=0;j<table.rows[0].cells.length;j++){//循环第一行的所有单元格的数据,让其加到最后新加的一行数据中(注意下标是从0开始的)
var cell = row.insertCell(j);//给新插入的行中添加单元格
cell.height = "24px";//一个单元格的高度,跟css样式中的line-height高度一样
cell.innerHTML = table.rows[0].cells[j].innerHTML;//设置新单元格的内容,这个根据需要,自己设置
}
table.deleteRow(0);//删除table的第一行
};
function tableInterval(){
var table = document.getElementById("test");//获得表格
change(table);//执行表格change函数,删除第一行,最后增加一行,类似行滚动
};
setInterval("tableInterval()",800);//每隔2秒执行一次change函数,相当于table在向上滚动一样
</SCRIPT>
</HEAD>
<BODY align="center">
<H1 style="font-color:blur;">滚动表格</H1>
<table class="table" align="center">
<thead class="fixedThead" align="center">
<tr>
<th>姓名</th><th>性别</th><th>年龄</th>
</tr>
</thead>
<tbody id="test" class="scrollTbody" align="center">
<tr>
<td>张三1</td><td>男</td><td>18</td>
</tr>
<tr>
<td>李四2</td><td>男</td><td>20</td>
</tr>
<tr>
<td>王昕3</td><td>女</td><td>19</td>
</tr>
<tr>
<td>李佳4</td><td>女</td><td>21</td>
</tr>
<tr>
<td>张三5</td><td>男</td><td>18</td>
</tr>
<tr>
<td>李四6</td><td>男</td><td>20</td>
</tr>
<tr>
<td>王昕7</td><td>女</td><td>19</td>
</tr>
<tr>
<td>李佳8</td><td>女</td><td>21</td>
</tr>
<tr>
<td>张三9</td><td>男</td><td>18</td>
</tr>
<tr>
<td>李四10</td><td>男</td><td>20</td>
</tr>
<tr>
<td>王昕11</td><td>女</td><td>19</td>
</tr>
<tr>
<td>李佳12</td><td>女</td><td>21</td>
</tr>
<tr>
<td>张三13</td><td>男</td><td>18</td>
</tr>
<tr>
<td>李四14</td><td>男</td><td>20</td>
</tr>
<tr>
<td>王昕15</td><td>女</td><td>19</td>
</tr>
<tr>
<td>李佳16</td><td>女</td><td>21</td>
</tr>
<tr>
<td>张三17</td><td>男</td><td>18</td>
</tr>
<tr>
<td>李四18</td><td>男</td><td>20</td>
</tr>
<tr>
<td>王昕19</td><td>女</td><td>19</td>
</tr>
<tr>
<td>李佳20</td><td>女</td><td>21</td>
</tr>
<tr>
<td>张三21</td><td>男</td><td>18</td>
</tr>
<tr>
<td>李四22</td><td>男</td><td>20</td>
</tr>
<tr>
<td>王昕23</td><td>女</td><td>19</td>
</tr>
<tr>
<td>李佳24</td><td>女</td><td>21</td>
</tr>
<tr>
<td>张三25</td><td>男</td><td>18</td>
</tr>
<tr>
<td>李四26</td><td>男</td><td>20</td>
</tr>
<tr>
<td>王昕27</td><td>女</td><td>19</td>
</tr>
<tr>
<td>李佳28</td><td>女</td><td>21</td>
</tr>
</tbody>
</table>
</BODY>
</HTML>
3.js json格式数据循环
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="js/jquery-3.4.1.min.js"></script>
<style>
.tablebox {
height: 500px;
overflow: hidden;
position: relative;
width: 1000px;
margin: 100px auto;
background-color: rgba(6, 26, 103, 1);
}
.tbl-header {
width: 100%;
position: absolute;
top: 0;
left: 0;
z-index: 999;
}
.tbl-body {
width: 100%;
position: absolute;
top: 0;
left: 0;
}
.tablebox table {
width: 100%;
}
.tablebox table th,
.tablebox table td {
font-size: 24px;
color: #7ca6f4;
line-height: 45px;
text-align: center;
}
.tablebox table tr th {
background-color: #1f1f9c;
cursor: pointer;
}
.tablebox table tr td {
background-color: transparent;
}
.tbl-body tr:nth-child(even) td,
.tbl-body1 tr:nth-child(even) td {
background-color: rgba(31, 31, 156, .5);
}
.tablebox table tr td span,
.tablebox table tr td span {
font-size: 24px;
}
</style>
</head>
<body>
<div class="tablebox">
<div class="tbl-header">
<table border="0" cellspacing="0" cellpadding="0">
<thead>
<tr>
<th>排名</th>
<th>地市</th>
<th>销售收入(万元)</th>
<th>同比(%)</th>
<th>环比(%)</th>
<th>销售计划(万元)</th>
<th>计划完成率(%)</th>
</tr>
</thead>
<tbody style="opacity:0;"></tbody>
</table>
</div>
<div class="tbl-body">
<table border="0" cellspacing="0" cellpadding="0">
<thead>
<tr>
<th>排名</th>
<th>地市</th>
<th>销售收入(万元)</th>
<th>同比(%)</th>
<th>环比(%)</th>
<th>销售计划(万元)</th>
<th>计划完成率(%)</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
</div>
<script>
var MyMarhq = '';
clearInterval(MyMarhq);
$('.tbl-body tbody').empty();
$('.tbl-header tbody').empty();
var str = '';
var Items = [{
"Ranking": "1",
"City": "保定",
"SaleIncome": "2506734.43",
"SaleRough": "296071.96",
"SalePlan": "7200000",
"PlanFinish": "34.82",
"TonOilincome": "264.15",
"OilTransform": "29.62",
"An": "53.00",
"Mom": "-13.00"
},
{
"Ranking": "2",
"City": "沧州",
"SaleIncome": "1425935.58",
"SaleRough": "93717.83",
"SalePlan": "3200000",
"PlanFinish": "44.56",
"TonOilincome": "366.59",
"OilTransform": "11.23",
"An": "65.00",
"Mom": "43.00"
},
{
"Ranking": "3",
"City": "秦皇岛",
"SaleIncome": "1372207.38",
"SaleRough": "241071.82",
"SalePlan": "3000000",
"PlanFinish": "45.74",
"TonOilincome": "342.32",
"OilTransform": "6.61",
"An": "34.00",
"Mom": "7.00"
},
{
"Ranking": "4",
"City": "衡水",
"SaleIncome": "972451.15",
"SaleRough": "87638.60",
"SalePlan": "2700000",
"PlanFinish": "36.02",
"TonOilincome": "246.03",
"OilTransform": "11.56",
"An": "15.00",
"Mom": "-18.00"
},
{
"Ranking": "5",
"City": "石家庄",
"SaleIncome": "939010.52",
"SaleRough": "140217.37",
"SalePlan": "7200000",
"PlanFinish": "13.04",
"TonOilincome": "139.44",
"OilTransform": "19.23",
"An": "-57.00",
"Mom": "-48.00"
},
{
"Ranking": "6",
"City": "邢台",
"SaleIncome": "774274.70",
"SaleRough": "124693.90",
"SalePlan": "3700000",
"PlanFinish": "20.93",
"TonOilincome": "138.87",
"OilTransform": "9.44",
"An": "-20.00",
"Mom": "-44.00"
},
{
"Ranking": "7",
"City": "唐山",
"SaleIncome": "680456.79",
"SaleRough": "50542.14",
"SalePlan": "3600000",
"PlanFinish": "18.90",
"TonOilincome": "243.60",
"OilTransform": "16.95",
"An": "-29.00",
"Mom": "-49.00"
},
{
"Ranking": "8",
"City": "张家口",
"SaleIncome": "613319.87",
"SaleRough": "176075.96",
"SalePlan": "3000000",
"PlanFinish": "20.44",
"TonOilincome": "87.09",
"OilTransform": "7.97",
"An": "2.00",
"Mom": "-24.00"
},
{
"Ranking": "9",
"City": "中油华奥",
"SaleIncome": "596575.25",
"SaleRough": "387024.26",
"SalePlan": "11000000",
"PlanFinish": "5.42",
"TonOilincome": "93.58",
"OilTransform": "19.06",
"An": "35.00",
"Mom": "6.00"
},
{
"Ranking": "10",
"City": "承德",
"SaleIncome": "589048.12",
"SaleRough": "68966.73",
"SalePlan": "2200000",
"PlanFinish": "26.77",
"TonOilincome": "193.24",
"OilTransform": "11.29",
"An": "30.00",
"Mom": "-28.00"
},
{
"Ranking": "11",
"City": "廊坊",
"SaleIncome": "515448.14",
"SaleRough": "137934.72",
"SalePlan": "3500000",
"PlanFinish": "14.73",
"TonOilincome": "95.47",
"OilTransform": "8.80",
"An": "-48.00",
"Mom": "-3.00"
},
{
"Ranking": "12",
"City": "瑞州",
"SaleIncome": "399875.26",
"SaleRough": "85371.46",
"SalePlan": "2000000",
"PlanFinish": "19.99",
"TonOilincome": "114.42",
"OilTransform": "11.42",
"An": "128.00",
"Mom": "-30.00"
},
{
"Ranking": "13",
"City": "石家庄中油",
"SaleIncome": "90543.62",
"SaleRough": "20065.14",
"SalePlan": "430000",
"PlanFinish": "21.06",
"TonOilincome": "213.44",
"OilTransform": "20.45",
"An": "-24.00",
"Mom": "-17.00"
},
{
"Ranking": "14",
"City": "辛集中油",
"SaleIncome": "49255.52",
"SaleRough": "8743.12",
"SalePlan": "250000",
"PlanFinish": "19.70",
"TonOilincome": "202.67",
"OilTransform": "29.95",
"An": "19.00",
"Mom": "-6.00"
},
{
"Ranking": "15",
"City": "井陉中油",
"SaleIncome": "29682.60",
"SaleRough": "2175.66",
"SalePlan": "140000",
"PlanFinish": "21.20",
"TonOilincome": "730.20",
"OilTransform": "25.55",
"An": "-74.00",
"Mom": "-52.00"
},
{
"Ranking": "16",
"City": "保定中油",
"SaleIncome": "11887.73",
"SaleRough": "2944.97",
"SalePlan": "100000",
"PlanFinish": "11.89",
"TonOilincome": "118.12",
"OilTransform": "34.16",
"An": "-64.00",
"Mom": "-72.00"
}
]
$.each(Items, function(i, item) {
str = '<tr>' +
'<td>' + item.Ranking + '</td>' +
'<td>' + item.City + '</td>' +
'<td>' + (+item.SaleIncome / 10000).toFixed(2) + '</td>' +
'<td>' + (+item.An).toFixed(2) + '</td>' +
'<td>' + (+item.Mom).toFixed(2) + '</td>' +
'<td>' + (item.SalePlan / 10000).toFixed(2) + '</td>' +
'<td>' + (+item.PlanFinish).toFixed(2) + '</td>' +
'</tr>'
$('.tbl-body tbody').append(str);
$('.tbl-header tbody').append(str);
});
if(Items.length > 10) {
$('.tbl-body tbody').html($('.tbl-body tbody').html() + $('.tbl-body tbody').html());
$('.tbl-body').css('top', '0');
var tblTop = 0;
var speedhq = 50; // 数值越大越慢
var outerHeight = $('.tbl-body tbody').find("tr").outerHeight();
function Marqueehq() {
if(tblTop <= -outerHeight * Items.length) {
tblTop = 0;
} else {
tblTop -= 1;
}
$('.tbl-body').css('top', tblTop + 'px');
}
MyMarhq = setInterval(Marqueehq, speedhq);
// 鼠标移上去取消事件
$(".tbl-header tbody").hover(function() {
clearInterval(MyMarhq);
}, function() {
clearInterval(MyMarhq);
MyMarhq = setInterval(Marqueehq, speedhq);
})
}
</script>
</body>
</html>
4.html静态页面循环
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="js/jquery-3.4.1.min.js" ></script>
<style>
table,
tbody,
tfoot,
thead,
tr,
th,
td {
margin: 0;
padding: 0;
outline: 0;
font-size: 100%;
vertical-align: baseline;
background: transparent;
border-collapse: collapse;
border-spacing: 0;
border: 0px;
}
.tablebox {
width: 300px;
height: 400px;
overflow: hidden;
margin: 50px auto;
}
.tablebox table {
width: 100%;
}
.tablebox table th,
.tablebox table td {
font-size: 12px;
text-align: center;
line-height: 36px;
}
.tablebox table th {
color: #2584e3;
background-color: #f6f6f6;
}
.tablebox table td img {
display: inline-block;
vertical-align: middle;
}
.tablebox table tbody tr:nth-child(even) {
background-color: #f6f6f6;
}
.tablebox.table_md table td,
.tablebox.table_md table th {
line-height: 40px;
}
</style>
</head>
<body>
<div class="tablebox" style="border: 1px solid #000">
<table id="tableId" border="0" cellspacing="0" cellpadding="0">
<thead>
<tr>
<th>排名</th>
<th>地市</th>
<th>纯枪量(吨)</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>大连</td>
<td>2470.48</td>
</tr>
<tr>
<td>2</td>
<td>大连2</td>
<td>2470.48</td>
</tr>
<tr>
<td>3</td>
<td>大连3</td>
<td>2470.48</td>
</tr>
<tr>
<td>4</td>
<td>大连4</td>
<td>2470.48</td>
</tr>
<tr>
<td>5</td>
<td>大连5</td>
<td>2470.48</td>
</tr>
<tr>
<td>6</td>
<td>大连6</td>
<td>2470.48</td>
</tr>
<tr>
<td>7</td>
<td>大连7</td>
<td>2470.48</td>
</tr>
<tr>
<td>8</td>
<td>大连8</td>
<td>2470.48</td>
</tr>
<tr>
<td>9</td>
<td>大连9</td>
<td>2470.48</td>
</tr>
<tr>
<td>10</td>
<td>大连10</td>
<td>2470.48</td>
</tr>
<tr>
<td>11</td>
<td>大连11</td>
<td>2470.48</td>
</tr>
<tr>
<td>12</td>
<td>大连12</td>
<td>2470.48</td>
</tr>
<tr>
<td>13</td>
<td>大连13</td>
<td>2470.48</td>
</tr>
<tr>
<td>14</td>
<td>大连14</td>
<td>2470.48</td>
</tr>
<tr>
<td>15</td>
<td>大连15</td>
<td>2470.48</td>
</tr>
</tbody>
</table>
</div>
</body>
<script>
// 参数1 tableID,参数2 div高度,参数3 速度,参数4 tbody中tr几条以上滚动
tableScroll('tableId', 400, 30, 10)
var MyMarhq;
function tableScroll(tableid, hei, speed, len) {
clearTimeout(MyMarhq);
$('#' + tableid).parent().find('.tableid_').remove()
$('#' + tableid).parent().prepend(
'<table class="tableid_"><thead>' + $('#' + tableid + ' thead').html() + '</thead></table>'
).css({
'position': 'relative',
'overflow': 'hidden',
'height': hei + 'px'
})
$(".tableid_").find('th').each(function(i) {
$(this).css('width', $('#' + tableid).find('th:eq(' + i + ')').width());
});
$(".tableid_").css({
'position': 'absolute',
'top': 0,
'left': 0,
'z-index': 9
})
$('#' + tableid).css({
'position': 'absolute',
'top': 0,
'left': 0,
'z-index': 1
})
if($('#' + tableid).find('tbody tr').length > len) {
$('#' + tableid).find('tbody').html($('#' + tableid).find('tbody').html() + $('#' + tableid).find('tbody').html());
$(".tableid_").css('top', 0);
$('#' + tableid).css('top', 0);
var tblTop = 0;
var outerHeight = $('#' + tableid).find('tbody').find("tr").outerHeight();
function Marqueehq() {
if(tblTop <= -outerHeight * $('#' + tableid).find('tbody').find("tr").length) {
tblTop = 0;
} else {
tblTop -= 1;
}
$('#' + tableid).css('margin-top', tblTop + 'px');
clearTimeout(MyMarhq);
MyMarhq = setTimeout(function() {
Marqueehq()
}, speed);
}
MyMarhq = setTimeout(Marqueehq, speed);
$('#' + tableid).find('tbody').hover(function() {
clearTimeout(MyMarhq);
}, function() {
clearTimeout(MyMarhq);
if($('#' + tableid).find('tbody tr').length > len) {
MyMarhq = setTimeout(Marqueehq, speed);
}
})
}
}
</script>
</html>