四种网页滚动条涉及的高度和二次排序

四种网页滚动条涉及的高度和二次排序

//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);
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值