2017-07-04 3 views
1

Comment ajouter des flèches à la fin du texte de première ligne? Et je le veux pointer vers le bas lors de l'effondrement et pointer vers le haut lors de l'expansion. Comme montré comme images ci-dessous. Appréciez votre aide, merci!Flèches bascule à la fin de la première ligne de texte

enter image description here

enter image description here

$(".expander").click(function() { 
 
    if ($(this).hasClass("expander")) { 
 
     $(this).removeClass("expander"); 
 
    } 
 
    else { 
 
     $(this).addClass("expander"); 
 
    } 
 
});
.expander { 
 
    height: 1em; 
 
    overflow: hidden; 
 
    cursor: pointer; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="expander"> 
 
    Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32. 
 
</div>

code tiré de here

+0

Juste Pour votre information, vous pouvez simplifier que 'gestionnaire click' à une seule ligne:' $ (this) .toggleClass ("extension") ' –

Répondre

2

Une approche:

$(".expander").click(function() { 
 
    if ($(this).hasClass("expander")) { 
 
    $(this).removeClass("expander"); 
 
    $(".panel").addClass("open"); 
 
    } else { 
 
    $(this).addClass("expander"); 
 
    $(".panel").removeClass("open"); 
 
    } 
 
});
.panel { 
 
    position: relative; 
 
} 
 

 
.expander { 
 
    height: 1em; 
 
    overflow: hidden; 
 
    cursor: pointer; 
 
    position: relative; 
 
    padding-right: 50px; 
 
} 
 

 
.panel:after { 
 
    content: "V"; 
 
    position: absolute; 
 
    top: 0; 
 
    right: 0; 
 
    font-family: sans-serif; 
 
} 
 

 
.panel.open:after { 
 
    transform: rotate(180deg); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="panel"> 
 
    <div class="expander"> 
 
    Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up 
 
    one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum 
 
    et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 
 
    1.10.32. 
 
    </div> 
 
</div>

+0

Merci pour votre réponse, ça fonctionne. – Eelyn

3

Vous pouvez utiliser la balise <details>.. La balise spécifie des détails supplémentaires que l'utilisateur peut afficher ou masquer à la demande.

details summary::-webkit-details-marker { 
 
    background: #fff; 
 
    color: green; 
 
    font-size: 200%; 
 
    float: right; 
 
    
 
}
<details> 
 
    <summary> Contrary to popular belief , Lorem Ipsum is not..</summary> 
 
    
 
    <p>Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. </p> 
 
</details>

+0

j'ai vu ce code en ligne, mais est-il possible de changer la position de la flèche en utilisant 'detail'? – Eelyn

+0

nous pouvons changer la position de gauche à droite pas sûr que nous pouvons déplacer l'icône de dilatation vers le bas sur l'expansion. Il est possible de changer la couleur de l'icône ou de la remplacer par une image d'arrière-plan. –

2

Vous pouvez utiliser l'élément pseudo pour créer la flèche et le changer en fonction de la classe expander

Voir extrait de code:

$(".expander").click(function() { 
 
    if ($(this).hasClass("expander")) { 
 
    $(this).removeClass("expander"); 
 
    } else { 
 
    $(this).addClass("expander"); 
 
    } 
 
});
div { 
 
    padding: 0 10px; 
 
} 
 

 
.expander { 
 
    height: 1em; 
 
    overflow: hidden; 
 
    cursor: pointer; 
 
} 
 

 
div::after { 
 
    content: ''; 
 
    width: 0; 
 
    height: 0; 
 
    border: 8px solid; 
 
    border-color: #000 transparent transparent transparent; 
 
    position: absolute; 
 
    right: 0px; 
 
    top: 15px; 
 
} 
 

 
.expander::after { 
 
    top: 10px; 
 
    border-color: transparent transparent transparent #000; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="expander"> 
 
    Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up 
 
    one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum 
 
    et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 
 
    1.10.32. 
 
</div>

+1

Merci pour votre réponse, ça fonctionne. – Eelyn