begin process at 2012 05 29 23:43:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript et le navigateur

 > 

Autre

 > 

[scrollBy()] defilement bloqueet/ou boucle infinie


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[scrollBy()] defilement bloqueet/ou boucle infinie

jeudi 20 août 2009 à 13:49:29 | [scrollBy()] defilement bloqueet/ou boucle infinie

Xiarea

Bonjour,

J'essai de faire défiler une page avec la fonction scrollBy() lorsque la souris s'approche des bords de la fenêtre.

En utilisant simplement cette fonction, appelée par un "onmouseover" sur une balise div, je dois passer plusieurs fois la souris pour avancer plusieurs fois. De plus la page se bloque dans la direction choisie après quelques décalages (3 ou 4 fois pour chaque direction)

J'ai essayé d'utiliser setTimeout() pour avoir un mouvement continue, mais ça ne fonctionne pas. et si on change de direction, la page bug, comme si elle voulais aller dans les deux directions à la fois... (ce qui me fait dire qu'il y a une boucle infinie)

voici le code :

Code Javascript :
function defilement(h,v)

{
window.scrollBy(h,v)
setTimeout(function (){defilement(h,v)},100);
}


y a-t-il une erreur ici ou dois-je chercher ailleur?

jeudi 20 août 2009 à 13:58:25 | Re : [scrollBy()] defilement bloqueet/ou boucle infinie

Bul3

Membre Club


Bonjour,
avec ce que vous nous donnez comme infos,
ça ne va pas être simple de répondre !!!
handicapé nasal (**) :

__ defilement est appelé quand ?
__ et surtout : dans la fonction
vous la rappelez allégrement...
et... on en sort quand ?

Cordialement [mon Site] [M'écrire] Bul
(**) ou néanmmoins

jeudi 20 août 2009 à 14:11:22 | Re : [scrollBy()] defilement bloqueet/ou boucle infinie

Xiarea

la fonction est appelée au passage de la souris sur une balise <div> :

Code HTML :
<div id="defilementNW" onmouseover="defilement(-1,-1)"></div>


Et sans même utiliser le setTimeout, la fonction ne fonctionne que 4 fois pour chaque direction.

ensuite, elle est toujours appelée, les valeurs en paramètre sont toujours les mêmes mais plus rien ne se passe...

Pour la boucle infinie c'est vrai que j'aurais du le voir

jeudi 20 août 2009 à 14:15:27 | Re : [scrollBy()] defilement bloqueet/ou boucle infinie

Bul3

Membre Club


la boucle infinie : réglé alors.

reste à voir :
>lorsque la souris s'approche des bords de la fenêtre.
or... vous appelez la fonction lorsque la souris
survole le div, pas lorsque "je ne sais quoi"
se rapproche des bords de la fenêtre.

jeudi 20 août 2009 à 14:20:50 | Re : [scrollBy()] defilement bloqueet/ou boucle infinie

Bul3

Membre Club

en fait, je ne comprend pas trop le but...
° un défilement automatique ?
__ de toute le page ?
pourquoi faire ? laissez donc les utilisateurs
"scroller" à leur guise. même si on peut faire.
__ d'un élément de la page ? ( dans ce cas regardez
en css position:fixed et c'est réglé )

jeudi 20 août 2009 à 14:24:18 | Re : [scrollBy()] defilement bloqueet/ou boucle infinie

Xiarea

Oui, j'ai placé des divs sur tout le tour de la fenètre, 8 au total, placé sur chaque bord et à chaque angle. lorsque la souris est au dessus, la fonction defilement est appelée. Mais je ne comprends pas pourquoi cela ne fonctionne que 4 fois? (alors que la fin de la page se trouve plus loin, bien entendu.)

jeudi 20 août 2009 à 14:30:16 | Re : [scrollBy()] defilement bloqueet/ou boucle infinie

Xiarea

Le but est de ne pas avoir à toucher aux assenceurs.
L'application doit être utilisable sans souris ni clavier (au stylet, sur un tablet PC)

une autre solution pourrait être de déplacer le document en faisant un "cliquer-glisser"...

jeudi 20 août 2009 à 14:45:18 | Re : [scrollBy()] defilement bloqueet/ou boucle infinie

Bul3

Membre Club

>>je ne comprends pas pourquoi cela ne fonctionne que 4 fois
faut voir les div, et les appels
( si vous avez rectifié la fonction de déplacement )

vendredi 21 août 2009 à 09:42:03 | Re : [scrollBy()] defilement bloqueet/ou boucle infinie

Xiarea

Non decidement je ne vois pas d'ou peu venir le problème. Pour tester j'ai reduit à ceci :

Code HTML :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>PARE - Vue d'un document</title>
<link rel = "stylesheet" media = "screen" type = "text/css" title="Design" href="design.css" />
<!-- script js-->
<script type="text/javascript" >
function defilement(h, v, event)
{
window.scrollBy(h, v);
}
</script>
</head>
<body>

<img id="docannote" src="temp.jpg" style="z-index:0"/>


<!-- elements de défillement -->
<div class = "defilement" id="defilementNW" onmouseover = "defilement(-1,-1)"></div>
<div class = "defilement" id="defilementN" onmouseover = "defilement(0,-1)"></div>
<div class = "defilement" id="defilementNE" onmouseover = "defilement(1,-1)"></div>
<div class = "defilement" id="defilementW" onmouseover = "defilement(-1,0)"></div>
<div class = "defilement" id="defilementE" onmouseover = "defilement(1,0)"></div>
<div class = "defilement" id="defilementSW" onmouseover = "defilement(-1,1)"></div>
<div class = "defilement" id="defilementS" onmouseover = "defilement(0,1)"></div>
<div class = "defilement" id="defilementSE" onmouseover = "defilement(1,1)"></div>

</body>


Le css ne fait que placer les <div> aux bons endroits, mais le voila quand même :

Code :
.defilement

{
z-index : 1000;
}

#defilementNW
{
position : fixed;
top : 0%;
left : 0%;
height : 5%;
width : 5%;
}

#defilementN
{
position : fixed;
top : 0%;
left : 5%;
height : 5%;
width : 90%;
}

#defilementNE
{
position : fixed;
top : 0%;
right : 0%;
height : 5%;
width : 5%;
}

#defilementW
{
position : fixed;
top : 5%;
left : 0%;
height : 90%;
width : 5%;
}

#defilementE
{
position : fixed;
top : 5%;
right : 0%;
height : 90%;
width : 5%;
}

#defilementSW
{
position : fixed;
bottom : 0%;
left : 0%;
height : 5%;
width : 5%;
}

#defilementS
{
position : fixed;
bottom : 0%;
left : 5%;
height : 5%;
width : 90%;
}

#defilementSE
{
position : fixed;
bottom : 0%;
right : 0%;
height : 5%;
width : 5%;
}


(désolé si c'est un peu long)

bref, le problème reste le même, la fonction se lance bien mais seulement 2 fois dans chaque direction, comme si la fin du document se trouvait 2pixels plus loin que l'affichage initial...

vendredi 21 août 2009 à 09:55:17 | Re : [scrollBy()] defilement bloqueet/ou boucle infinie

bultez

Membre Club


lu chez selfHTML :
scrollBy()
Fait défiler une page automatiquement vers le haut ou le bas,
la gauche ou la droite du nombre de pixels mentionné.
Attend les paramètres suivants:
1. valeur x = Nombre de pixels pour le défilement
vers la gauche ou vers la droite. Les valeurs négatives
défilent vers la gauche, les positives vers la droite.
2. valeur y = Nombre de pixels pour le défilement
vers le haut ou vers le bas. Les valeurs négatives
défilent vers le haut, les positives vers le bas.

vous appelez la fonction qui va faire défiler
la page d'1 pixel, au mieux. déjà.


CordialementBul[mon Site][M'écrire]


1 2

Cette discussion est classée dans : boucle, page, defilement, infinie, scrollby


Répondre à ce message

Sujets en rapport avec ce message

Bloquer le defilement d une page [ par SmaybE ] slt a tous Voila j ai un site heberger gratuitement il y a forcement de la pub et celle ci est en bas de la page une banniere + un lien et l astuce se boucle mal bouclée [ par tonytruand ] bonsoir,J'ai un souci que je n'arrive pas à résoudre, ma boucle commence bien puisque la première lettre est bien détectée la 2 ème et la 3 ème aussi boucle [ par bossou ] bonjour. j'ai une page html ecrit avec du js dans laquelle je saisi un nombre quelconque. j'ai une deuxième page js qui doit s'afficher n fois égal au Probléme d'incrémentation dans une boucle [ par alibyte ] Bonjour, a tous ! Voila j' ai un projet à faire pour mes études, je dois récupérer l'url des images sur monsite.com page par page et les stocker dans recuperer variable sur une autre page [ par rudak666 ] bonjour je suis en train d'essayer d'afficher une image aléatoire en appelant une page (photo_ran.php) qui me génere une source aléatoire donc je voud barre de defilement [ par zekotch ] voila j'ai un petit probleme je voudrai empecher la bar de defilement droite de bouger après un clique sur un element de ma page. En effet j'ai plusi Ajax et base de donnees [ par voyager ] voyager Bonjour a tous Etant debutant je ne sais pas si je post au bon endroit mais bon j essaye [u]Petit explication pour la comprehension [/u] D menu déroulant caché par la page [ par gillie ] Bonjour, J'ai créé un fichier index.html avec deux frames, la première avec l'entete et le menu horizontal, l'autre avec la page qui change quand on Recuperer le resultat d'une pahe php dans ma page html [ par dartagnan43 ] Bonsoir, Je voudrais insérer dans ma page html le résultat de mon compteur live que j'ai sur ma page live.php En gros ma page live.php interroge ma b


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales