2011-10-19 4 views
2

Je me demandais s'il existe des alternatives à Jquery pour animer Div Heights en JavaScript? Tandis que Jquery est grand et relativement petit, je ne veux pas charger la jquery entière juste pour cette fonctionnalité. Et vu que c'est pour une application WebOs (pas une application web), je dois garder le temps de chargement aussi petit que possible.Léger Javascript pour animer la hauteur div?

Merci

+0

animations Que recherchez-vous? –

+0

animer la hauteur de 0 à 100px ou vice versa dans un laps de temps spécifié. – levi

+0

En remarque, [Zepto.js] (http://zeptojs.com/) est une alternative légère pour jQuery ciblée sur les téléphones Webkit. Il utilise '-webkit-transition' pour ses animations, donc ce n'est pas beaucoup d'aide si vous voulez une solution scriptée. –

Répondre

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) 
    } 
} 

violon Nice: http://jsfiddle.net/maniator/Z6cbq/

2

WebOS utilise WebKit mobile, de sorte que vous pourriez faire la plupart des travaux avec CSS:

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

Alors est vraiment facile JavaScript par votre navigateur:

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

est ici quelques détails: http://pre101.com/blog/2009/11/10/a-guide-to-css-transitions-in-webos/

+0

J'ai utilisé des animations CSS, mais il semble que JS fonctionne beaucoup mieux sur le Touchpad que les animations CSS. – levi

+0

C'est bizarre, un touchpad et pas un émulateur de touchpad? Les animations CSS devraient toujours être plus fluides. Faites-vous quelque chose où le flux doit être calculé beaucoup? Peut-être pourriez-vous essayer '-webkit-transform: scaleY (...)' –

+0

Intéressant. Quelle est la syntaxe pour l'utiliser? (en supposant que le div par défaut est à 0px de hauteur) – levi