워터폴 흐름-절대 위치 지정 레이아웃과 플로팅 레이아웃의 차이점은
1입니다. 레이아웃이 다릅니다.
절대 위치 지정: 모든 절대 위치 지정 LI를 하나의 UL에 배치합니다.
플로팅 레이아웃: 다중(일반적으로) 3개 또는 4개) UL은 LI를 배포합니다.
2. AJAX는 다릅니다.
절대 위치 지정: 요청된 JSON 데이터(물론 다른 형식의 데이터일 수도 있음)를 UL에 삽입하기만 하면 됩니다. 그런 다음 새로 삽입된 LI에 대해 TOP 및 LEFT 설정을 수행합니다.
부동 배열: 요청된 JSON 데이터(물론 다른 형식의 데이터일 수 있음)를 해당 UL에 각각 삽입합니다. 왜냐하면 절대 위치 지정이 있기 때문입니다. LI의 위치를 설정해야 합니다. 자동으로 아래쪽으로 정렬됩니다.
1. 기능 분석:
1. 각 LI의 위치, 즉 각 LI의 TOP 및 LEFT 값을 설정합니다. ;
2. AJAX 데이터를 LI에 넣고 UL에 삽입합니다.
2. 구현 프로세스:
1. LI의 LEFT를 설정합니다. 🎜> 어느 열에요? 열 수에 각 LI의 너비를 곱하면 LEFT 값을 결정할 수 있습니다.
패턴 찾기:
이제 세 개의 열이 필요하므로 각 열의 LI에는 공통 열 번호가 있습니다(직접 설정하세요). 0.1.2 또는 A.B.C, 줄여서 이 세 열에 라벨을 붙인다) 여기서는
숫자 0의 첫 번째 열
숫자 1의 두 번째 열
숫자 2의 세 번째 열
따라서 각 행에는 3개의 LI만 배치할 수 있습니다.
첫 번째 li는 0번, 두 번째 li는 1번, 세 번째 li는 2번
네 번째 li는 0번, 다섯 번째 li는 1번이고, 여섯 번째 li는 1번입니다. li는 2번입니다.
그래서 인덱스를 사용하여 모듈로를 취한다고 생각하면 정확히 0 1 2, 0 1 2...
이를 통해 LI가 어느 열에 있는지 판단할 수 있습니다.
index%3 = 0 1 2, 0 1 2...
모듈로 3을 사용해야 하는 이유는 무엇입니까? . 따라서 나중에 이러한 루프를 얻으려면 모듈로 연산을 고려해 볼 수 있습니다.
2. TOP 값을 설정합니다.
각 열의 총 높이 값이 다르기 때문입니다. 따라서 서로 다른 열의 높이 값을 저장하려면 세 가지 변수를 설정해야 합니다.
이 값을 구해야 하는 이유는 무엇입니까?
1. 처음 로드할 때 현재 컬럼 높이 값을 기준으로 LI의 TOP 값이 설정됩니다.
2. AJAX 요청 이후의 데이터 LI가 UL에 삽입되기 때문에; 현재 열의 현재 전체 높이를 알아야 하며 새 LI를 TOP 값으로 지정해야 합니다.
사실 중간에 할 말이 많습니다. 하지만 너무 깁니다. 내 코드의 주석도 명확하게 작성되었습니다. 질문이 있으시면 메시지를 남겨서 저와 소통하실 수 있습니다. ! !
한 가지 말씀드릴 점은 비슷한 기능이 많이 있는데, 쉽게 호출할 수 있도록 FUNCTION으로 작성해 두었습니다. 예를 들어 LI의 TOP과 LEFT를 설정하고, LI의 열 개수를 구하고, 열의 총 높이를 설정하는 것입니다. 모두 공용 블록이고 함수 블록이므로 별도의 함수로 작성하는 것이 좋습니다.