Plier / déplier du texte

DBS33 Messages postés 51 Date d'inscription   Statut Membre Dernière intervention   -  
DBS33 Messages postés 51 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je cherche une solution pour pouvoir afficher dans un weblog une partie de texte sur 3 à 4 lignes d'un texte en contenant une dizaine. L'utilisateur aura qu'à cliquez sur "lire la suite" pour voir tout et une fois lu cliquez sur "replier".
A voir également:

3 réponses

Tomy2e Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   859
 
Bonjour, voila un petit exemple basique en JavaScript: http://jsfiddle.net/vqgudgmy/
Deuxième alternative si tu ne veux pas t'embêter à séparer le début et la fin:
http://jsfiddle.net/r1erjqfy/1/
0
DBS33 Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour et merci de ta réponse. J'ai oublié de préciser quelque chose d'important. Je suis nouveau né dans ce domaine. Je crois comprendre que le html je le met dans mon weblock qui contien mon texte. Le css je crois devoir le mettre dans ma feuille de style css, mais le javascript je vois pas ou le mettre.
0
Tomy2e Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   859
 
Pour le JavaScript tu as deux options, tu peux le mettre dans ton HTML entre les balises
<script></script>

ou sinon tu peux le mettre dans un fichier .js et l'appeler avec le code suivant:
<script type="text/javascript" src="emplacementduscript.js"></script>
1
DBS33 Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
voilà ce que j'ai mis dans mon html. Mais ca marche pas. J'ai remplacé pour mieux identifié "texte" pas "textePliDepli" idem dans le CSS.

<div id="textePliDepli">Test<br />
Test<br />
Test<br />
Test<br />
Test<br />
Test<br />
Test<br />
Test<br />
Test<br />
Test<br />
Test<br />
Test<br />
</div> <a href="#" onclick="voirsuite();" id="voirsuite">Voir la suite...<br />
</a><a href="#" onclick="replier();" style="display:none;" id="replier">Replier...</a>
<script>
function voirsuite()
{
document.getElementById('voirsuite').style.display = 'none';
document.getElementById('textePliDepli').style.height='100%';
document.getElementById('replier').style.display='block';
}
function replier()
{
document.getElementById('voirsuite').style.display='block';
document.getElementById('textePliDepli').style.height='75px';
document.getElementById('replier').style.display='none';
}
</script>
0
Tomy2e Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   859
 
Qu'est-ce qui ne marche pas ? J'ai remplacé le 100% par "auto" dans le JavaScript, pour éviter que la div ne prenne tout la largeur de l'écran vu que j'ai placé le code directement dans mon <body>, autrement tout fonctionne bien si je place ça dans un document HTML:
<div id="textePliDepli">Test<br /> 
Test<br /> 
Test<br /> 
Test<br /> 
Test<br /> 
Test<br /> 
Test<br /> 
Test<br /> 
Test<br /> 
Test<br /> 
Test<br /> 
Test<br /> 
</div>
<a href="#" onclick="voirsuite();" id="voirsuite">Voir la suite...<br /></a>
<a href="#" onclick="replier();" style="display:none;" id="replier">Replier...</a>
<script> 
function voirsuite() 
{ 
document.getElementById('voirsuite').style.display = 'none'; 
document.getElementById('textePliDepli').style.height='auto'; 
document.getElementById('replier').style.display='block'; 
} 
function replier() 
{ 
document.getElementById('voirsuite').style.display='block'; 
document.getElementById('textePliDepli').style.height='75px'; 
document.getElementById('replier').style.display='none'; 
} 
</script>
<style>
#textePliDepli
{
    height:75px;
    overflow-y:hidden;
}
</style>
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Et le "même" code simpifié
- 1 Seul bouton
- 1 Seule fonction

<html> 
 <head> 
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />	
 <title>test</title>
 </head>
  <body>
<style>
#textePliDepli
{
    height:75px;
    overflow-y:hidden;
}
</style>

<div id="textePliDepli">Test<br /> 
	Test<br /> 
	Test<br /> 
	Test<br /> 
	Test<br /> 
	Test<br /> 
	Test<br /> 
	Test<br /> 
	Test<br /> 
	Test<br /> 
	Test<br /> 
	Test<br /> 
</div>
<a href="#" onclick="plierreplier();" id="voirsuite">Voir la suite...<br /></a>
 
  </body>
 </html>
 
 <script type="text/javascript">
function plierreplier() { 
  var voirsuite = document.getElementById('voirsuite');
  var textePliDepli = document.getElementById('textePliDepli');
 
  if( textePliDepli.style.height != 'auto'){
   //On déplie
   voirsuite.innerHTML = 'Replier...';
   textePliDepli.style.height='auto'; 
  }else{
   //on masque
   voirsuite.innerHTML = 'Voir la suite...<br>';
   textePliDepli.style.height='75px'; 
  }
 }
</script>


0
DBS33 Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
Merci ça fonctionne. Juste un petit problème. Quand je clique sur "voir la suite" l'affichage ne reste pas sur la zone mais remonte automatiquement en haut de page. Il faut donc revenir sur la zone de lecture. C'est pareil pour "replier".
0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Salut,
Remplace le lien a par un bouton :
<button onclick="plierreplier();" id="voirsuite">Voir la suite...</button>

Bonne journée
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Ou enlève le href ça devrait suffir
<a  onclick="plierreplier();" id="voirsuite">Voir la suite...<br /></a>
0
DBS33 Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir et merci. Cela fonctionne avec le bouton mais pas en supprimant le href... à moins que j'ai fait une boulette
0
Tomy2e Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   859
 
Mets un return false après l'appel de la fonction, comme ça tu gardes le style d'un lien:
<a href="#" onclick="plierreplier();return false;" id="voirsuite">Voir la suite...<br /></a>
0