To use the function use one the the following syntax:
$("#id").truncate();Truncates to size of container and adds "..." if the text requires truncation.
$("#id").truncate(" <a href='#'>read more</a>");Truncates to size of container and adds specified text (in this example a read more link) if the text requires truncation.
Click here for an example
Your container should have a fixed height and overflow set to hidden. You will obviously also need to include the jQuery library.
(function ($) {
$.fn.truncate = function (options) {
if (!options) options = "...";
return this.each(function (num) {
var height = parseInt($(this).css("height"));
var content = $(this).html();
while (this.scrollHeight > height) {
content = content.replace(/s+S*$/, "");
$(this).html(content + options.more);
}
})
}
})(jQuery);
If you only want to truncate a string to a single line, and want a server-side solution, then I recommend you read the Code Project article Truncating a text string in ASP.NET to fit within a given pixel width.
Rate this post:
Comments
by Ken | November 7, 2011
Thanks, works perfectly!
Reply
by Paolo Brocco | August 7, 2014
So far this is the best solution for an annoying problem with several plugins, scripts (I tried clamp and it didn't work) or dirty hacks around, THANK YOU!
In my implementation instead of "..." I use '…' (ellipsis, unicode 8230).
Reply
by Blah | March 3, 2015
Heaven forbid we get provided a legitimate example of it being used.
Reply
by John Avis | March 4, 2015
Thanks for your feedback, Blah. I have added an example.
Reply