Pour faire un effet de slide toggle (affichage d'une div qui repousse plus pas le contenu dejà affiché, j'ai utilisé la librairie scriptaculous
Je viens de découvrir jquery
Lequel vous semble le plus optimisé en terme de ressource ?
Pour faire un effet de slide toggle (affichage d'une div qui repousse plus pas le contenu dejà affiché, j'ai utilisé la librairie scriptaculous
Je viens de découvrir jquery
Lequel vous semble le plus optimisé en terme de ressource ?
Juste pour faire un slide toggle ? Pas besoin de scriptaculous ni de jQuery, ça se code facilement sans ajouter des montagnes de scripts.
Du reste, j'avais déjà proposé un exemple de ce genre de code :
'bloc' étant l'élément qui apparait / disparait ;
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 var restaure; var pas; window.onload=function(){ var elem = document.getElementById('bloc'); var elemt = document.getElementById('lien'); restaure = elem.offsetHeight; elem.style.height='0px'; elem.style.overflow='hidden'; elem.style.display='none'; elemt.style.cursor='pointer'; pas = restaure/50; elemt.onmouseover = function(){elemt.style.color='red'} elemt.onmouseout = function(){elemt.style.color=''} elemt.onclick = function(){swap('bloc')} } function swap(elmt){ elt=document.getElementById(elmt); if(elt.style.display=='none'){ var taille = restaure; elt.style.display = ''; var timer = setInterval(function(){ if(taille>elt.offsetHeight){elt.style.height=(elt.offsetHeight+pas)+'px'} else{elt.style.height='auto';clearInterval(timer)} },1); } else{ var taille = elt.offsetHeight; restaure = taille; elt.style.overflow='hidden'; var timer = setInterval(function(){ if(taille>=pas){elt.style.height=taille+'px';taille-=pas;} else{elt.style.display='none';clearInterval(timer)} },1); } }
'lien' le lien qui fait basculer l'affichage.
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
Merci pour le script
Mais soit d1 la zone div à afficher masquer
et lien_d1 pour declencher l'action
je ne vois pas comment passer ce dernier paramètre
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 <body> Introduction <div > <a href="#" >Afficher - Masquer la zone d1</a> </div> <div id="d1" > Zone d1 </div> Reste du texte <script language="JavaScript" type="text/JavaScript" > var restaure; var pas; window.onload=function(){ var elem = document.getElementById('d1'); var elemt = document.getElementById('lien_d1'); restaure = elem.offsetHeight; elem.style.height='0px'; elem.style.overflow='hidden'; elem.style.display='none'; elemt.style.cursor='pointer'; pas = restaure/50; elemt.onmouseover = function(){elemt.style.color='red'} elemt.onmouseout = function(){elemt.style.color=''} elemt.onclick = function(){swap('bloc')} } function swap(elemt){ elt=document.getElementById(elemt); if(elt.style.display=='none'){ var taille = restaure; elt.style.display = ''; var timer = setInterval(function(){ if(taille>elt.offsetHeight){elt.style.height=(elt.offsetHeight+pas)+'px'} else{elt.style.height='auto';clearInterval(timer)} },1); } else{ var taille = elt.offsetHeight; restaure = taille; elt.style.overflow='hidden'; var timer = setInterval(function(){ if(taille>=pas){elt.style.height=taille+'px';taille-=pas;} else{elt.style.display='none';clearInterval(timer)} },1); } }</script> </body>
???
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <div > <a href="#" id="lien_d1">Afficher - Masquer la zone d1</a> </div> <div id="d1" > Zone d1 </div>
Je ne réponds pas aux questions techniques par MP.
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 <head> <script language="JavaScript" type="text/JavaScript" > var restaure; var pas; window.onload=function(){ var elem = document.getElementById('d1'); var elemt = document.getElementById('lien_d1'); restaure = elem.offsetHeight; elem.style.height='0px'; elem.style.overflow='hidden'; elem.style.display='none'; elemt.style.cursor='pointer'; pas = restaure/50; elemt.onmouseover = function(){elemt.style.color='red'} elemt.onmouseout = function(){elemt.style.color=''} elemt.onclick = function(){swap(elem); return false} } function swap(elemt){ elt=document.getElementById(elemt); if(elt.style.display=='none'){ var taille = restaure; elt.style.display = ''; var timer = setInterval(function(){ if(taille>elt.offsetHeight){elt.style.height=(elt.offsetHeight+pas)+'px'} else{elt.style.height='auto';clearInterval(timer)} },1); } else{ var taille = elt.offsetHeight; restaure = taille; elt.style.overflow='hidden'; var timer = setInterval(function(){ if(taille>=pas){elt.style.height=taille+'px';taille-=pas;} else{elt.style.display='none';clearInterval(timer)} },1); } }</script> </head> <body> Introduction <div > <a href="#" id="lien_d1">Afficher - Masquer la zone d1</a> </div> <div id="d1" > Zone d1 </div> Reste du texte </body>
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager