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
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![]()
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum
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 : Sélectionner tout - Visualiser dans une fenêtre à part 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...
Voilà... comme tu peux le constater, pour le moment c'est un peu vague tout ça...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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![]()
Partager