2009-05-06 2 views
10

여기에 약간의 내용이 있습니다.JavaScript/jQuery로 컨텐츠를 슬라이딩하기위한보다 부드러운 애니메이션을 얻으려면 어떻게해야합니까?

http://www.smallsharptools.com/downloads/jQuery/Slider/slider.html

HTML 구조는 간단하다. 고정 된 높이와 너비의 외부 상자가 있으며 오버플로가 숨겨져 있습니다. 그런 다음 Item 클래스로 표시된 일련의 div 요소 인 내용의 전체 너비로 설정된 너비의 내부 컨테이너가 있습니다.

내부 컨테이너를 왼쪽 및 오른쪽으로 밀어 내려면 왼쪽 여백을 변경해야합니다. 왼쪽으로 갈 때 나는 음수가되는 값을 줄이고 다시 오른쪽으로 가면 0으로 되돌립니다. 하지만 나는 더 나은 성능을 기대하는 크롬에서도 들쭉날쭉 한 애니메이션을보고 있습니다.

다른 기술을 사용하여 앞뒤로 움직이면 내 질문이 더 부드럽습니까? 절대 위치가 더 부드럽습니까? 아니면 내가 고려해야 할 다른 것이 있습니까? 내가 아직 모르는 부드러운 애니메이션을 만드는 비밀이 있습니까?

답변

6

여백은 요소 주위의 다른 요소의 위치에 영향을주기 때문에 여백을 계산하면 다른 요소가 다시 계산됩니다.

절대 위치 지정 (자체 z 인덱스에서)은 여전히 ​​다른 요소의 다시 칠을 발생시킬 수 있지만 주변 요소를 계산할 때 비용이 적게 듭니다.

이 이야기는 내가 "완화"JQuery와 플러그인, documentation here를 사용하여 좋은 결과를 했어 브라우저/DOM 내부가

http://www.youtube.com/watch?v=a2_6bGNZ7bA&feature=channel_page

+0

절대 위치 지정을 사용하여 애니메이션을 수행하는 대체 버전을 만들었지 만 동일한 지그재그 애니메이션이 계속 표시됩니다. http://www.smallsharptools.com/downloads/jQuery/Slider2/slider.html 내가 할 수있는 게 더 있습니까? – Brennan

+0

나는 도움이 될지도 모르는 많은 트릭을 생각할 수있다. 그러나 내가 너라면, 아마 그들이 어떻게하는지 볼 수있을 것이다. http://cssglobe.com/post/4004/easy-slider-15-the -easiest-jquery-plugin-for-sliding 거기에는 너무 많은 슬라이더가 있습니다. –

4

를 작동하는 방법에 좋은 통찰력을 제공합니다.

사인, 바운스, 신축성, 가속 등 다양한 부드럽게 움직이는 동작을 HTML 요소에 적용 할 수 있습니다.

그것은 두포에서 언급 한 것과 동일한 기술을 사용하지만, 당신을 위해 지저분한 절대/상대 위치 지정을 처리합니다. 또한 크로스 브라우저이며 새 버전에 최적화되어 있습니다.

그러나 easing을 사용하면 얻을 수있는 장점 중 하나는 프레임 율이 낮은 애니메이션이 더 인상적으로 보이도록 도울 수 있다는 것입니다.

+0

이미 해당 easing 플러그인을 사용하고 있으며 animate 함수를 대체하지 않습니다. 간단하게 지원합니다. 애니메이션에서 다른 중간 지점을 제공하면 도움이됩니다. 무엇이든 계산하면 더 많은 수학이 계산되고 애니메이션이 느려집니다. – Brennan

+3

OK, 시간을 낭비해서 죄송합니다. 내 대답을 삭제해야합니까? – Ash

+0

저는 개인적으로 이것에 문제가있어서 절대 위치에서 친척으로 스크립트를 다시 작성했지만 아직 스크립트를 다시 작성하지 않았습니다. 나는 모든 것을 빨리 만들었습니다 (400ms 미만). 이 tho를 읽은 후에 나는 그 장면을 주었고, 이제는 내 애니메이션이 어떤 속도로도 변할 수 있고, 그 어떤 easings에서도 여전히 좋아 보인다. 따라서 @ Brennan은 실제로 애니메이션을 부드럽게 처리하여 덜 엉뚱한 느낌을줍니다. 필자는 과거에이 플러그인을 사용했지만, 플러그인 용이며 특별한 여유 공간을 포함하고 싶지는 않지만 단지 1을 포함 할 수 있습니다. :) –

관련 문제