2012-05-23 2 views
0

나는 단순한 갤러리 슬라이더 이미지가 있습니다. 첫 번째 이미지가 표시되면 왼쪽 화살표가 숨겨지고 마지막 이미지가 표시되면 오른쪽 화살표가 숨겨집니다. 어느 것이 가장 빠른 방법입니까

숨기고 내가 숨기기 및 표시 방법을 사용 화살표를 표시합니다. 그러나 fadeIn()/fade Out과 css ('visibility', 'hidden')/css ('visibility', 'visible')

가장 좋은 방법은 궁금합니다. . 가장 빠른 하나

감사 http://api.jquery.com/hide/ .hide() 애니메이션을 사용하지 않을 경우 모든

+0

[조숙 한 최적화는 모든 악의 뿌리입니다] (http://c2.com/cgi/wiki?PrematureOptimization) –

답변

2

.

이것은 그 디스플레이가 나중에 그 초기 값으로 복원 할 수 있도록 상기 표시 속성의 값 jQuery의 데이터 캐시에 저장되는 것을 제외하고는, ('디스플레이', '없음') .CSS 호출과 대략 동일하다. 요소의 표시 값이 인라인 인 경우 숨겨지고 표시된 경우 인라인으로 다시 표시됩니다.

fadeIn() 및 페이드 아웃()는 애니메이션을 사용하고 느린 것 등의 처리가 필요

1

THIS TEST에 따른 (이에 대해 설정된 시간을 단지 숨길 등()). - hide()되어 약간 빠른 다음 fadeOut() (애니메이션을 사용하지 않으므로). 하지만 가장 빠른 방법을 원할 경우 document.getElementById('a').style.display = 'none';과 같은 기본 js 명령을 사용하면 80 % -90 % 빨라집니다.

+0

테스트가 맞다고 생각하지 않습니다. 첫 번째로'$ ("# a"). hide()'를 실행하면 요소를 숨기므로 다른 모든 문장 ('$ ("# a"). hide()','$ ("# a") .fadeout()') 아무것도하지 않습니다. jQuery는 일부 최적화를 수행하고 요소가 표시되지 않는 경우 아무 것도 움직이지 않는다고 생각합니다. 또한 이러한 방식으로 (비동기식이기 때문에) 이러한 애니메이션을 올바르게 벤치마킹 할 수 있는지 확실하지 않습니다. 더 나은 테스트는 http://jsperf.com/hide-test2/2 일 수 있지만 여전히 애니메이션 기간은 고려하지 않습니다. –

관련 문제