2010-04-28 4 views

답변

0

적절히 명명 된 slideDown().

각각의 패널은 주기적에게 위치를 변경하는 부모 패널 내부에 있습니다

+0

@Dav, SlideDown 효과는 GoWalla와 동일한 기능을 수행하지 않습니다. 이유에 대한 아래의 @nickf 응답을 참조하십시오. – JGreig

+0

실제로, 기존 요소 위의 * new * 요소에 대한 슬라이딩 다운을 사용하면 기존 요소를 아래로 밀어 넣을 수 있습니다. 글자 그대로 정확하게 복제하고 싶다면 슬라이딩 다운이 아니라 효과적으로 동일하게 수행 할 수 있습니다. – Amber

2

jQuery를에서 방금 비슷한 뭔가를 slideDown을 사용할 수 있습니다, 그러나 왈라는 약간 다른 방법을 사용하는 것 같다. 즉, 패널 자체가 애니메이션으로 나타나지 않고 크기를 변경하는 것조차 없습니다. 뷰포트를 통해 모든 패널을 이동시키는 것입니다. 바닥에 도달하면 Gowalla 페이지가 멈 춥니 다. 실제로는 약 4 분 동안 슬라이딩 할 수있는 충분한 패널을로드합니다. - 경우에 따라, 패널을 맨 아래에서 맨 위로 가져 가면 연속으로 만들 수 있습니다. .

+0

정확히, JQuery를 사용하여이 작업을 수행하는 방법을 묻는 것입니다. SlideDown 효과를 사용하는 것만으로 GoWalla가 모든 컨텐츠를 아래로 밀어내는 것과 동일한 기능을 수행하지 못합니다. – JGreig

+0

@JGreig - 'bottom'속성에 애니메이션을 적용하여 매 5 초마다 81px 줄입니다. jQuery 함수'animate()'와 내장 함수'setInterval'을보십시오. 나머지는 CSS입니다. – nickf

0

나는 그들이 닉이 말한 것과 비슷하다고 생각한다. 애니메이션 효과를 만들려면, 패널 내부를 둘러싸는 div 컨테이너의 위치를 ​​애니메이션으로 만드는 것이 전부라고 생각합니다.

따라서 부모 패널에는 6 개의 패널에만 맞는 뷰포트가 있습니다. 다른 div 컨테이너가 모든 패널을 둘러 쌀 것입니다. div의 최상위 위치 특성을 이동하려면 jQuery .animate()를 사용하십시오. 반복 할 때마다 div 컨테이너가 패널의 높이만큼 아래로 이동합니다 (예 : 100px).

var numPanels = 20; 
var i = 1; 

var livePanel = setInterval(function() { 
    if (i < numPanels) { 
    $('div.wrap').animate({'top': '+100px'}, 500, 'swing'); 
    i++; 
    } else { 
    livePanel.clearInterval(); 
    } 
}, 1000); 

이것이 작동하는 방법에 대한 대략적인 코드입니다. 또한 한 번에 뷰포트에 포함될 패널의 수를 고려해야하며, "shift down"의 총 수에서 이것을 빼십시오 (numPanels).

+0

원한다면, 전체 반복의 끝에서 position top을 설정할 수 있습니다 : 0px; 다시 시작합니다. 그러나 다시 반복한다면 "라이브"스트림의 목적을 무효화 할 것입니다. 하하. 그래도 아약스를 통해 새 세트를로드 할 수 있습니다 ... – Lyon

관련 문제