Bonjour à tous,
Existe-t-il un événement qui permette de déclencher une action uniquement lorsqu'un scroll est terminé ?
Merci d'avance pour vos réponses
Bonne journée
Version imprimable
Bonjour à tous,
Existe-t-il un événement qui permette de déclencher une action uniquement lorsqu'un scroll est terminé ?
Merci d'avance pour vos réponses
Bonne journée
Salut.
Qu'appelles-tu un scroll terminé ?
Ceci dit, le seul événement lié au scroll est onscroll, tu peux donc détecter la position de l'ascenseur sur cet événement et détecter où tu es dans la page.
EDIT : à noter toutefois que le onscroll est déclenché avant que le scroll ait effectivement lieu ;)
Bonjour Bovino,
J'essaye de créer un menu qui se positionne toujours en milieu (hauteur) de page lorsque l'on scroll ou que l'on resize la page.
cela crée des sautillement lorsque l'on scroll (surtout sous FF) mais pas lors d'un resize.
Je me demandais si cela n'étais pas dû à la fréquence de déclenchement du :
donc j'aurais voulu essayer de ne déclencher le positionnement du menu qu'une fois que l'utilisateur a fini de scroller...Code:window.addEvent('scroll', this.adjust.bind(this));
Mais il y a sans doute d'autres raisons dans mon code que voici et dans lequel il y a plein de paramètres que pour le moment je ne fais que collecter et que je n'utilise pas... :oops:
Voilà... comme tu peux le constater, pour le moment c'est un peu vague tout ça...Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 var WdVerticalAdjust = new Class ({ initialize: function(el) { this.element = jQuery(el); this.container = jQuery("body"); var e_coords = this.element.offset(); var c_coords = this.container.offset(); var e_height = this.element.height(); var c_height = this.container.height(); this.min = this.element.css('top').toInt(); this.max = c_height - e_height; this.diff = e_coords.top - c_coords.top - this.min; this.containerY = c_coords.top; window.addEvent('scroll', this.adjust.bind(this)); window.addEvent('resize', this.adjust.bind(this),false); this.adjust(); }, adjust: function() { hauteur=(document.documentElement.clientHeight); //var y = window.scrollY - this.containerY; var y =jQuery(window).scrollTop()+ 250; //y = Math.min(y, this.max - this.diff); //y = Math.max(y, this.min); //alert(this.max+" / "+this.diff+" / "+this.containerY+" / "+y); var myFx = new Fx.Tween("menu", {duration: 'long',transition: Fx.Transitions.Sine.easeInOut}); myFx.start('top', jQuery(window).scrollTop()+(hauteur/2)-100); //myFx.start('top',y); } }); window.addEvent ( 'domready', function(){ new WdVerticalAdjust('#menu'); } );
Merci d'avance pour ton aide ;)