2011-10-19 11 views
2

자바 스크립트에서 Div 높이를 애니메이션화하기위한 Jquery의 대안이 있습니까? Jquery는 훌륭하고 상대적으로 작지만,이 기능 중 하나만을 위해 jquery 전체를로드하려고하지 않습니다. 그리고 이것이 WebOs 앱 (웹 앱이 아님)을 고려할 때, 로딩 시간을 가능한 한 작게 유지해야합니다.div 높이에 애니메이션 효과를 적용 할 수있는 간단한 자바 스크립트?

감사

+0

당신이 찾고있는 어떤 애니메이션을? –

+0

지정된 시간 내에 0에서 100px 또는 그 반대로 애니메이션을 높이십시오. – levi

+0

참고로 [Zepto.js] (http://zeptojs.com/)는 Webkit 전화를 대상으로하는 jQuery의 경량 대체품입니다. 애니메이션을 위해'-webkit-transition'을 사용하기 때문에 스크립트 된 솔루션을 원한다면 많은 도움이되지 않습니다. –

답변

3
function animateHeight(obj, height){ 

    var obj_height = obj.clientHeight; 

    if(obj_height <= height){ return; } 
    else { 
     obj.style.height = (obj_height - 5) + "px"; 
     setTimeout(function(){ 
      animateHeight(obj, height); 
     }, 500) 
    } 
} 

멋진 바이올린 : http://jsfiddle.net/maniator/Z6cbq/

2

웹 OS 모바일 웹킷을 사용하기 때문에 당신이 CSS와 함께 대부분의 작업을 할 수있는 그런 다음 자바 스크립트 쉽게 정말

#someElement { 
    -webkit-transition: height 100ms linear; 
    height: 0; 
} 

를 :

document.querySelector('#someElement').style.height = '100px' 
// - or - 
document.querySelector('#someElement').className += ' open'; 
// where #someElement.open has a defined height. 

는 여기에 몇 가지 세부 사항을이다 : http://pre101.com/blog/2009/11/10/a-guide-to-css-transitions-in-webos/

+0

CSS 애니메이션을 사용해 왔지만 JS가 CSS 애니메이션보다 터치 패드에서 부드럽게 움직이는 것처럼 보입니다. – levi

+0

이상한, 터치 패드 및 터치 패드 에뮬레이터가 아닌가요? CSS 애니메이션은 항상 더 매끄러 워야합니다. 흐름이 많이 계산되어야하는 것을하고 있습니까? 어쩌면 당신은'-webkit-transform : scaleY (...)'시도 할 수 있습니다. –

+0

흥미 롭습니다. 그것을 사용하기위한 구문은 무엇입니까? (div가 기본적으로 0px 높이에 있다고 가정) – levi

관련 문제