JavaScript library that truncates text, list or table by chars, elements or rows

show More/Less

JavaScript library that truncates text, list or table by chars, elements or row and shows/hides text blocks, elements or table row with Show More and Show Less.

Demo

See the demo - example

Clone the repo and install dependencies

git clone
cd show-more

yarn
// or
npm i

Watch/Build the app

Watch the app, just call:

yarn dev
// or
npm run dev

Build app:

yarn prod
// or
npm run prod

How to use it:

Add css and js library to html

<link rel="stylesheet" href="style.css">
<script src="showMore.min.js"></script>

<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/tomik23/show-more@master/docs/style.css">
<script src="https://cdn.jsdelivr.net/gh/tomik23/show-more@master/docs/showMore.min.js"></script>

For text → live example:

<div class="element" data-config="{ 'type': 'text', 'limit': 120, 'more': '→ show more', 'less': '← less' }">
  Lorem ipsum, dolor ...
  ...
</div>

For list → live example:

<ul class="element" data-config="{ 'type': 'list', 'limit': 5, 'element': 'li', 'more': '↓ show more', 'less': '↑ less', 'number': true }">
  <li>item 1</li>
  <li>item 2</li>
  ...
</ul>

For table → live example:

<table class="element" data-config="{ 'type': 'table', 'limit': 4, 'more': '↓ show more', 'less': '↑ less', 'number': true }">
  ...
</table>

Only show more button → live example:

<div class="element links-style" data-config="{ 'type': 'list', 'limit': 5, 'more': '→ show more' }">
  <a href="#">Administracja biur,</a>
</div>

Show the number next to the button → live example:

<ul class="element display-inline" data-config="{ 'type': 'list', 'limit': 3, 'element': 'li', 'more': '→ show more', 'less': '← less', 'number': true }">
  <li>Usługi murarskie i tynkarskie,</li>
  ...
</ul>
element description
your-class name of the class after which we want to add support for showing/hiding text, list or table
data-config embedding JSON in the html, the entire configuration of a particular element
type we have three type after which it will be hidden [text, list or table]
limit text after how many characters to hide the text and insert show more/less
list or table after how many elements/rows hide the rest and insert show more/less
after this parameter allows you to set how much text/elements/rows
should be after the show more/less button^.
element on the parameter we will create an html element and put in the text show more/less
more/less is the text and chars that appears after the text, list or table e.g. > show more and < show less
number number of hidden items to show more/less e.g. -> show more 3, only works for list and table

^ Let’s say we have 20 records with text and we determine that the text is to be trimmed after 100 characters in each record, it may happen that in several records the text is very short and has 110 characters, so show more/less will appear after 100 characters and after clicking an additional 10 characters, it will look funny. To prevent this, we add the "after": 50 parameter, which means that the hidden text must be at least 50 characters. Otherwise, show more/less will not appear. The same after can be applied to lists, elements and table records

Number of records counted in the table tr based on all tr of thead, tbody and tfoot

Function call

document.addEventListener('DOMContentLoaded', function() {
   // text, table, list, elelemnts
   new ShowMore('.element');

  });
});

Download Details:

Author: tomik23

Demo: https://tomik23.github.io/show-more/

Source Code: https://github.com/tomik23/show-more

#javascript

JavaScript library that truncates text, list or table by chars, elements or rows
2.20 GEEK