Rechercher : dans
Par :

SetInterval Javascript accélération

Dernière réponse le 4 sep 2008 à 15:10:12 Poplio, le 17 aoû 2008 à 16:10:14 
 Signaler ce message aux modérateurs

Bonjour,

je suis entrain de faire un menu déroulant géré avec un setInverval.

Le menu fonctionne bien, lorsqu'il est enroulé et qu'on click sur un button, il se déroule progressivement.
A l'inverse, quand il est déroulé et qu'on click sur le button, il s'enroule.

La première fois que je l'enroule/déroule tout fonctionne bien.

Par contre lorsque que je veux le faire plusieurs fois de suite, le déroulement/enroulement progressif devient de plus en plus rapide.

Y a t-il moyen de régler ça ?


Je précise qu'une fois enroulé ou déroulé je fais un ClearInterval.

Configuration: Windows XP
Firefox 3.0.1

Meilleures réponses pour « setInterval Javascript accélération » dans :
Javascript - Les événements Voir Qu'appelle-t-on un événement? Les événements sont des actions de l'utilisateur, qui vont pouvoir donner lieu à une interactivité. L'événement par excellence est le clic de souris, car c'est le seul que le HTML gère. Grâce au Javascript il est...
Javascript - Les variables Voir Le concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. En Javascript, les noms de variables peuvent être aussi long que l'on désire,...
Javascript - Introduction au langage Javascript Voir Qu'est-ce que le Javascript? Le Javascript est un langage de script incorporé dans un document HTML. Historiquement il s'agit même du premier langage de script pour le Web. Ce langage est un langage de programmation qui permet d'apporter des...
Javascript - Modifier la hauteur (height) d'un élément HTML VoirPour modifier la hauteur d'un élément HTML en javascript, il suffit d'utiliser sa propriété de style "height". Pour cela vous pouvez y faire référence de la manière suivante : Si vous souhaitez connaître la hauteur (height) d'un bloc HTML, il...
Javascript - Librairies d'effets pour vos images VoirAu gré de vos explorations du web, vous avez vu de superbes effets de présentation des images. Et ça vous plairaît bien de pouvoir proposer les mêmes à vos visiteurs. Voici quelques solutions en Javascript couplées à des CSS. Elles sont plus...
Javascript - Manipulation des contrôles clavier VoirManipulation des contrôles clavier Cette astuce a pour but de vous faire découvrir la (ou du moins une) manière de contrôler les évènements clavier en javascript. Cela vous permettra de contrôler/attribuer les/des comportements particuliers à...
Télécharger Download Accelerator Plus VoirDownload Accelerator Plus (DAP) est un logiciel qui sert à optimiser le temps de téléchargement des logiciels et autres documents sur Internet. Il agit tout simplement en découpant le logiciel que vous souhaitez télécharger en une multitude de petits...
Télécharger Pilote Intel Graphics Media Accelerator pour Vista VoirLe pilote Intel Graphics Media Accelerator pour Windows Vista est prévu pour les cartes-mères équipées des puces graphiques suivantes : Intel G965 Express desktop chipset, Intel Q965 Express desktop chipset, Intel Q963 Express desktop...
Javascript - Les tableaux VoirIntroduction à la notion de tableau Les variables de Javascript ne permettent de stocker qu'une seule donnée à la fois. Or, étant donné qu'il est souvent utile de manipuler de nombreuses données, le concept de variable se révéle parfois...
Javascript - l'objet Array VoirLes particularités de l'objet Array L'objet Array est un objet du noyau Javascript permettant de créer et de manipuler des tableaux. Voici la syntaxe à utiliser pour créer une variable tableau : var x = new Array(element1[, element2, ...]); Si...
Javascript - L'objet Date VoirLes particularités de l'objet Date L'objet Date permet de travailler avec toutes les variables qui concernent les dates et la gestion du temps. Il s'agit d'un objet inclus de façon native dans Javascript, et que l'on peut toujours utiliser. La...

1

Poplio, le 17 aoû 2008 à 16:13:05

Pour ceux qui voudraient mon code :



<html>
<head>
<link href="screen.css" rel="stylesheet" type="text/css">
<script type="text/javascript">
function play(){
var obj = document.getElementById('header');
var hAct = obj.style.width;
var regex = /px/;
var chaine = hAct;
var resultat = chaine.split(regex);
var newWidth = resultat[0];
newWidth = parseInt(newWidth);
switch(newWidth){
case 20: deroule(newWidth); //enroulé
break;
case 500: enroule(newWidth); //déroulé
break;
default:break;
}
}
function deroule(width){
newWidth = width + 10;
if(newWidth <= 500){
document.getElementById('header').style.width = newWidth;
var timer = setInterval('deroule(newWidth);', 40);
}
else{
clearInterval(timer);
newWidth = 500;
}
}
function enroule(width){
newWidth1 = width - 10;
if(newWidth1 >= 20){
document.getElementById('header').style.width = newWidth1;
var timer = setInterval('enroule(newWidth1);', 40);
}
else{
clearInterval(timer);
newWidth1 = 20;
}
}
var etat;
</script>
</head>
<body>
<div id="header" style="width:20px;"> </div>
<input type="button" onclick="javascript:play();">
</body>
</html>

Répondre à Poplio

2

popthemusic, le 17 aoû 2008 à 23:34:36

Up

Répondre à popthemusic

3

 Korri, le 4 sep 2008 à 15:10:12

Un peut tard mais bon ;)

SetInterval permet de definir un unterval aussi si tu l'appelle plusieurs fois tu auras plusieurs intervals qui s'éxécuterons toutes les Xms, aussi tu devrais plutôt utiliser setTimeout() ou ne fait qu'un seul setInterval

Répondre à Korri
Collection CommentÇaMarche.net