js表格移动到指定行
程序员文章站
2022-06-07 12:53:27
...
function freshView(){
// 当前显示有数据时
if(GlobalDataLength>0){
// 这里为了防止并发采用副本形式进行数据查找
var dataList = GlobalData.concat();
//刷新显示位置到当前时间最近的一条数据
if(StopPushtoNow)
return;
// 此方法实现的是定位到离当前utc时间最近的数据,可根据需要自行调整
currentdate = new Date();
nowdate=currentdate.getTime()+currentdate.getTimezoneOffset()*60000;
if(dataList != null && dataList != undefined && dataList.length > 1) {
var copyGlo = dataList.concat();
if (copyGlo != null && copyGlo != undefined && copyGlo.length > 1) {
// 对数组进行排序
copyGlo.sort(comparedate);
// 获取最近的时间并指定到该行上
//获取table序号
var mytable = document.getElementById("tableList");
var nowRow = new Date(copyGlo[0].scheduledTime);
for (var i = 0; i < mytable.rows.length; i++) {
//console.log(mytable.rows[i].cells[4].innerHTML);
var date = new Date(mytable.rows[i].cells[3].innerHTML);
if (date.getTime() == nowRow.getTime()) {
// 根据行高进行滑块移动位置计算
var heightpx=$("#tableList tr").height();
$("#initDataTable").scrollTop((i - 1) * heightpx);
break;
}
}
}
}
}
}
时间对比排序算法
// 计算两个时间的差值找到离当前时间最近的时间
var comparedate = function (obj1, obj2) {
var val1 = new Date(obj1.scheduledTime);
var val2 = new Date(obj2.scheduledTime);
var dc1 = Math.abs((parseInt(nowdate - val1)/1000));
var dc2 = Math.abs((parseInt(nowdate - val2)/1000));
if (dc1 < dc2) {
return -1;
} else if (dc1 > dc2) {
return 1;
} else {
return 0;
}
}
下一篇: 项目rxjava+rxandroid学习