四种网页滚动条涉及的高度和二次排序
//js中常用的几种高度
$scope.change = function (node) {
Id = node.Id; //用于定位元素id
var offset = -62; //偏移值,自己调试
var temp = $('#' + Id + '-0').offset().top; //元素到可视区域顶部的高度
var scrollTop = $('#pDIV').scrollTop(); //隐藏高度
var viewHeight = $('#pDIV').innerHeight(); //可视区高度
// var scrollHeight = $('#pDIV')[0].scrollHeight; //内容高度
$('#pDIV').animate({
scrollTop: scrollTop + temp + offset
}, 200);
};
//id相同的时候根据**排序
/**
* id相同的情况下根据姓名排序 id排列如:9,9,9,6,6,6,8,8,8,8
* @param managers
*/
function sortByGroupName(managers) {
var temp = []; //相同id人员
var beginIndex = 0;
for (var i = 0; i < managers.length; i++) {
if (managers[i].Id === managers[beginIndex].Id) {
temp.push(managers[i]);
}
if ((managers[i].Id !== managers[beginIndex].Id) || (i === managers.length - 1)) { //到了不同id时排序
temp.sort(function (a, b) {
return compareRuleCN(a.name, b.name);
});
for (var j = 0; j < temp.length; j++) {
managers[j + beginIndex] = temp[j];
}
beginIndex = i;
temp = [];
if (i !== managers.length - 1) {
i = i - 1;
}
}
}
}
//二次排序,跟上面排序不一样
usersArray.sort(function (a, b) { //先根据id排序,id相同再根据姓名排序
if (a.id !== b.id) {
return b.id - a.id;
} else {
return lcompareRuleCN(a.userName, b.userName);
}
});
//汉字拼音比较
function compareRuleCN(a, b) { //名字的汉字拼音大小比较
var A, B;
var pinyin = new Pinyin();
A = pinyin.getFullChars(a).toUpperCase();
B = pinyin.getFullChars(b).toUpperCase();
return A.localeCompare(B);
}