jquery 2 급 내 비게 이 션 내용 균분 의 원리 및 실현

1415 단어 2 급 항 법jquery
이것 은 작년 에 했 던 한 항목 의 알고리즘 으로 개인 적 으로 괜 찮 은 것 같 아서 꺼 내 서 공유 합 니 다.배경:머리 네 비게 이 션 2 급 네 비게 이 션 은 내용 이 너무 길 고 한 열 이 너무 못 생 겼 으 면 두 열 로 나 누 어야 합 니 다.블록 별로 최대한 균등 하 게 나 누고 배열 순 서 는 제한 이 없습니다.원리:1.각 2 급 네 비게 이 션 을 하나의 독립 적 인 것 으로 하고 내부 부분 은 여러 개의 블록 으로 만들어 각 조각의 높이 를 계산 하고 오름차 순 으로 배열 한다.2.각 덩어리의 총 높이 와 2 를 제외 하고 평균 적 으로 가장 높 은 높이 를 구한다.3.블록의 높이 가 가장 높 을 때 부터 높이 가 평균 높이 보다 크 면 이것 을 A 변 에 넣 고 다른 것 은 B 변 으로 나눈다.4.이 높이 보다 작 으 면 평균 높이 가 최고 높이 를 뺀 값 으로 바뀐다.5.남 은 가장 높 은 높이 와 평균 높이 를 비교 하고 만약 에 높이 가 평균 높이 보다 크 면 이것 을 A 변 에 넣 고 다른 것 은 B 변 으로 나눈다.6.모든 조각 이 끝 날 때 까지 3-5 를 반복 합 니 다.이것 은 이 코드 의 주요 사고 로 네 비게 이 션 의 내용 을 평균 적 인 두 열 로 나 누 었 다.실현:한 조각 만 있 을 때 비교 하지 않 아 도 된다
 
if (arrs.length <= 1) {
$(obj).css({
width : "150px"
});
return;
}
.전체 높이 가 제한 높이 보다 높 지 않 을 때 두 열 로 나 눌 필요 가 없다.
 
if (sum < limitHeight) {
$(obj).css({
width : "150px"
});
return;
}
원리 의 실현 코드:
 
for (var i = arrs.length - 1; i > -1; i--) {
var _h = $(arrs[i]).height();
if (_h < gap) {
gap = gap - _h;
oldArrs.push(arrs[i]);
} else {
newArrs.push(arrs[i]);
}
}
oldArrs,newArrs 는 A,B데모 다운로드

좋은 웹페이지 즐겨찾기