Reputation: 1
I'm looking for a solution to add a button read more and less in my long text with angular 5 or I need to convert this code with Js to angular 6:
readMoreButton.js:
$(document).ready(function(){
$('.service-info').hide();
$('.read-less').hide();
$('.read-more').click(function(){
$(this).hide();
$(this).next().show();
$(this).next().next().show();
})
$('.read-less').click(function(){
$(this).prev().hide();
$(this).prev().prev().show();
$(this).hide();
})
})
readMoreButton.html
<a class="read-more">Read More </a>
<div class="service-info">
<p> Lorem ipusum dolorem isaretLorem ipusum dolorem isaretLorem ipusum dolorem isaretLorem ipusum dolorem isaret</p>
<p> Lorem ipusum dolorem isaretLorem ipusum dolorem isaretLorem ipusum dolorem isaretLorem ipusum dolorem isaret</p>
<p> Lorem ipusum dolorem isaretLorem ipusum dolorem isaretLorem ipusum dolorem isaretLorem ipusum dolorem isaret</p>
<p> Lorem ipusum dolorem isaretLorem ipusum dolorem isaretLorem ipusum dolorem isaretLorem ipusum dolorem isaret</p>
<p> Lorem ipusum dolorem isaretLorem ipusum dolorem isaretLorem ipusum dolorem isaretLorem ipusum dolorem isaret</p>
<p> Lorem ipusum dolorem isaretLorem ipusum dolorem isaretLorem ipusum dolorem isaretLorem ipusum dolorem isaret</p>
<p> Lorem ipusum dolorem isaretLorem ipusum dolorem isaretLorem ipusum dolorem isaretLorem ipusum dolorem isaret</p>
</div>
<a class="read-less">Read Less</a>
<div class="separator"><hr></div>
<a class="read-more">Read More </a>
<div class="service-info">
<p> Lorem ipusum dolorem isaretLorem ipusum dolorem isaretLorem ipusum dolorem isaretLorem ipusum dolorem isaret</p>
<p> Lorem ipusum dolorem isaretLorem ipusum dolorem isaretLorem ipusum dolorem isaretLorem ipusum dolorem isaret</p>
<p> Lorem ipusum dolorem isaretLorem ipusum dolorem isaretLorem ipusum dolorem isaretLorem ipusum dolorem isaret</p>
<p> Lorem ipusum dolorem isaretLorem ipusum dolorem isaretLorem ipusum dolorem isaretLorem ipusum dolorem isaret</p>
<p> Lorem ipusum dolorem isaretLorem ipusum dolorem isaretLorem ipusum dolorem isaretLorem ipusum dolorem isaret</p>
<p> Lorem ipusum dolorem isaretLorem ipusum dolorem isaretLorem ipusum dolorem isaretLorem ipusum dolorem isaret</p>
<p> Lorem ipusum dolorem isaretLorem ipusum dolorem isaretLorem ipusum dolorem isaretLorem ipusum dolorem isaret</p>
</div>
<a class="read-less">Read Less</a>
Upvotes: 0
Views: 12337
Reputation: 227
Try to use the angular plugin "@minni/read-more". Check out the link here. It's quite a simple and easy-to-use plugin.
Upvotes: 0
Reputation: 1364
How I achieved this
Step 1:
<button type="button" (click)="alterDescriptionText()">
{ showShortDesciption ? 'SHOW ALL': 'SHOW LESS' }}
</button>
Step 2: (In Your .component.ts File)
showShortDesciption = true
alterDescriptionText() {
this.showShortDesciption = !this.showShortDesciption
}
Step 3:
<div [ngClass]="{'show-less': showShortDesciption}">
<!-- Your Text Here -->
</div
Step 4:
.show-less {
height: 4rem;
overflow: hidden;
padding: 1rem;
}
Basically i'm altering the height of div on button click
Upvotes: 3