Div bougeable en fonction du scroll... problème le navigateur panique... Script

Signaler
Messages postés
22
Date d'inscription
lundi 20 janvier 2003
Statut
Membre
Dernière intervention
14 janvier 2005
-
Messages postés
2
Date d'inscription
vendredi 12 mars 2004
Statut
Membre
Dernière intervention
29 mai 2006
-
Bonjour,
J'essai de réalisé un script qui déplace les div verticalement ou horizontalement en fonction du scroll de la fenetre pour que les div reste tjrs visible....

tous marche plus au moins normalement les div bouge en fonction du scroll
Mais si on commence à faire paniquer le scroll... mouvement répété rapide haut bas droite gauche de la barre de défilement... et même un tout ptit peu faut pas grand chose

la charge du CPU s'emballe 100% le script doit tourné en boucle et bien sur le navigateur ne répond plus... et bonjours CTRL ALT DELETE

je n'arrive pas à trouver pkoi je suis sur que c'est du à mes setIntervall mais j'arrive pas à trouvé quand est ce qu'il s'emballe...
Merci de toute réponse...

<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="./structv2.css">
<style type="text/css">
<!--

-->
</style>
<SCRIPT LANGUAGE="javascript1.2" SRC="LibV1.js"></SCRIPT>
<script language="javascript">
<!--
var timecheckscroll = 800; // intérval de temps ou on check le changement de position de la scroll
var timeintmoving = 300; // intérval de temps ou l'on effectue un déplacement de la div position par position

var intervalscroll = setInterval("checkscroll()",timecheckscroll);

function checkscroll(){
//alert("check");
pagesize = document.body.clientHeight;

//DECLARATION DES DIV
divheading = heading.style;
divfooter = footer.style;

// VALEUR DES SCROLL TOP ET LEFTvar topScroll document.body.scrollTop + 5; // 5 valeur de la marge supérieur au dessus de heading
var leftScroll = document.body.scrollLeft;

// VALEUR DES POSITIONS TOP ET LEFT DES DIV HEADING ET PAGGING
var topHeading = getTop(heading);
var topFooter = getTop(footer);
var leftFooter = getLeft(footer);

// VERIFI SI LA SCROLL A BOUGE PAR RAPPORT A LA POSITION DE LA DIV HEADING axe vertical
if(topHeading != topScroll){
//alert("moververti");

// SI OUI LES DIV SONT DEPLACER axe vertical
window.clearInterval(intervalscroll);
intervalmovingvertic = setInterval("movevertic()",timeintmoving);
//movevertic();
}

// VERIFI SI LA SCROLL A BOUGE PAR RAPPORT A LA POSITION DE LA DIV HEADING axe horizontal
if(leftFooter != (leftScroll + 5)){
// SI OUI LES DIV SONT DEPLACER axe horizontal
window.clearInterval(intervalscroll);
intervalmovinghorizon = setInterval("movehorizon()",timeintmoving);
}
}

// FONCTION BOUGE à LA VERTICAL LES DIV
function movevertic(){
//DECLARATION DES DIV
divheading = heading.style;
divfooter = footer.style;

// VALEUR DES SCROLL TOP ET LEFTvar topScroll document.body.scrollTop + 5; // 5 valeur de la marge supérieur au dessus de heading
var leftScroll = document.body.scrollLeft;

// VALEUR DES POSITIONS TOP ET LEFT DES DIV HEADING ET PAGGING
var topHeading = getTop(heading);
var topFooter = getTop(footer);
var leftFooter = getLeft(footer);

var diffvertic = topHeading - topScroll;

if(topHeading == topScroll){
//alert("okay");

window.clearInterval(intervalmovingvertic);
intervalscroll = setInterval("checkscroll()",timecheckscroll);
}
else{
if(diffvertic <= 8 && diffvertic >= 1){
var movevalue = 1;
}
else{
var movevalue = Math.floor(diffvertic / 8);
}
//alert(diffvertic+" => "+movevalue);

divheading.top = topHeading - movevalue;
divfooter.top = topFooter - movevalue
;

if(topHeading == topScroll){
alert("okayaaaaaaaaaaa");

window.clearInterval(intervalmovingvertic);
intervalscroll = setInterval("checkscroll()",timecheckscroll);
}
}
}

// FONCTION BOUGE à L'HORIZONTAL LES DIV
function movehorizon(){
//DECLARATION DES DIV
divheading = heading.style;
divfooter = footer.style;

// VALEUR DES SCROLL TOP ET LEFTvar topScroll document.body.scrollTop + 5; // 5 valeur de la marge supérieur au dessus de heading
var leftScroll = document.body.scrollLeft;

// VALEUR DES POSITIONS TOP ET LEFT DES DIV HEADING ET PAGGING
var topHeading = getTop(heading);
var topFooter = getTop(footer);
var leftFooter = getLeft(footer);

var diffhorizon = leftFooter - (leftScroll + 5);

if(leftFooter != leftScroll + 5){
divfooter.left = leftScroll + 5;

window.clearInterval(intervalmovinghorizon);
intervalscroll = setInterval("checkscroll()",timecheckscroll);
}
else{
window.clearInterval(intervalmovinghorizon);
intervalscroll = setInterval("checkscroll()",timecheckscroll);
}
}
//-->
</script>

</head>

Entete_______________________________________________________________________________________________________________________________________________________________________

ne pas utiliser de div scrollable mais
plustot la fenetre mettre en place des menu qui se déplacerons en vertical et
en horizontal selon le scrollLeft de l'utilisateur voir testscroll.php pour
plus de source mettre en place une entete pour le tablo qui se déplace en vertical
mais pas en horizontal pour toujours gardé l'alignement par rapport au tablo




__________________________________________________________________________________________________________________________________________________________________









ads





























adsgf

























asdg





















asdg





adsg

Paggin < 1 2 3 4 5 6... >

</html>

3 réponses

Messages postés
22
Date d'inscription
lundi 20 janvier 2003
Statut
Membre
Dernière intervention
14 janvier 2005

Désolé pour la mise en page.... %-6
Messages postés
22
Date d'inscription
lundi 20 janvier 2003
Statut
Membre
Dernière intervention
14 janvier 2005

Messages postés
2
Date d'inscription
vendredi 12 mars 2004
Statut
Membre
Dernière intervention
29 mai 2006

Le newbie de la programmation