Dynamically shortened Text using jQuery
You ever read long, almost never ending paragraphs without thinking seriously, this should be shorter, or I should be able to shrink this!
?
For those who thinks this or saying: I can do this?
, there's a very simple solution for this using jQuery.
The HTML
Let start with a simple text (lorem ipsum) that look like this:
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum laoreet, nunc eget laoreet sagittis,<p/p> <p>quam ligula sodales orci, congue imperdiet eros tortor ac lectus. Duis eget nisl orci. Aliquam mattis purus non mauris blandit id luctus felis convallis.</p> <p>Integer varius egestas vestibulum. Nullam a dolor arcu, ac tempor elit. Donec.<p/p>
CSS
Let create a basic style, sorry I won't do this for you.
* {
margin: 0px;
padding: 0px;
}
a {
color: blue;
cursor: pointer;
}
p {
margin: 1em 0;
}
jQuery Code
Now, the fun part. This will take the text and turn it into: Lorem ipsum dolor ... more
. The "more" will be clickable and the text will automatically expand. In this case, I use only the first 20 characters: $('#more').text().substr(0, 20)
, if you need more, simply change the number from 20 to the one you like.
$(document).ready(function() {
var orgContent = $('#more').html();
var txtContent = $('#more').text().substr(0, 20) + ' ... <a id="morelink">more</a>';
$('#more').html(txtContent);
$("body").on("click", '#morelink', function(){
$('#more').html(orgContent);
$('<a id="lesslink">less</a>').appendTo('#more p:last-child');
});
$("body").on("click", '#lesslink', function(){
$('#more').html(txtContent);
});
});




