天天看點

js表格移動到指定行

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;
        }
    }
           

繼續閱讀