How to do a "Read More" button in JavaScript

2

Hello. Home I have this text:

  

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent   aliquam vitae elit in lobortis. Morbi tincidunt enim elit, condimentum   accumsan pain lacinia elementum. Proin magna nunc, interdum in   posuere eu, vestibulum sit amet ante. In dictum justo at lorem rhoncus   pretium. Vestibulum vel lorem quis ante tristique vulputate ut sit   I release. Donec in condimentum erat. Etiam et lorem at metus   malesuada pretium in a est.Lorem ipsum dolor sit amet, consectetur   adipiscing elit. Praesent aliquam vitae elit in lobortis. Morbi   tincidunt enim elit, condimentum accumsan pain lacinia elementum.   Proin magna nunc, interdum in posuere eu, vestibulum sit amet ante. In   right dictum at lorem rhoncus pretium. Vestibulum vel lorem wanted to   tristique vulputate ut sit amet libero. Donec in condimentum erat.   Etiam et lorem at metus malesuada pretium in a est

You need to create a ReadMore button using JavaScript. Home I need at first just to appear this size:

  

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent   aliquam vitae elit in lobortis. Morbi tincidunt enim elit, condimentum   accumsan pain lacinia elementum. Proin magna nunc, interdum in   posuere eu, vestibulum sit amet ante. In dictum justo at lorem rhoncus   pretium. Vestibulum vel lorem quis ante tristique vulputate ut sit   I release. Donec in condimentum erat. Etiam et lorem at metus   malesuada pretium in a est.Lorem ipsum dolor sit amet, consectetur   adipiscing elit. Praesent aliquam vitae elit in lobortis. Morbi   tincidunt enim elit, condimentum accumsan pain lacinia elementum.   Proin magna

And when you press the read button, the whole text appears. Home How can I do this?

    
asked by anonymous 17.05.2017 / 22:13

1 answer

2

$(document).ready(function() {
 
    var showChar = 100;  
    var ellipsestext = "...";
    var moretext = "Show more >";
    var lesstext = "Show less";
    

    $('.more').each(function() {
        var content = $(this).html();
 
        if(content.length > showChar) {
 
            var c = content.substr(0, showChar);
            var h = content.substr(showChar, content.length - showChar);
 
            var html = c + '<span class="moreellipses">' + ellipsestext+ '&nbsp;</span><span class="morecontent"><span>' + h + '</span>&nbsp;&nbsp;<a href="" class="morelink">' + moretext + '</a></span>';
 
            $(this).html(html);
        }
 
    });
 
    $(".morelink").click(function(){
        if($(this).hasClass("less")) {
            $(this).removeClass("less");
            $(this).html(moretext);
        } else {
            $(this).addClass("less");
            $(this).html(lesstext);
        }
        $(this).parent().prev().toggle();
        $(this).prev().toggle();
        return false;
    });
});
.morecontent span {
    display: none;
}
.morelink {
    display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><html><head><title></title></head><body><spanclass="more">
      Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
    </span>
    <br><br>
    <div class="more">
      Morbi placerat imperdiet risus quis blandit. Ut lobortis elit luctus, feugiat erat vitae, interdum diam. Nam sit amet arcu vitae justo lacinia ultricies nec eget tellus. Curabitur id sapien massa. In hac <a href="#">habitasse</a> platea dictumst. Integer tristique leo consectetur libero pretium pretium. Nunc sed mauris magna. Praesent varius purus id turpis iaculis iaculis. Nulla <em>convallis magna nunc</em>, id rhoncus massa ornare in. Donec et feugiat sem, ac rhoncus mauris. Quisque eget tempor massa.
    </div>
  </body>
</html>
    
17.05.2017 / 22:19