jquery-read-more
Version:
jQuery plugin for easy read more text animation
114 lines (69 loc) • 3.57 kB
Markdown
# jQuery Read More
A lightweight jQuery plugin for creating animated Read more text.
# **Installation**
You can install the file with NPM:
```js
npm install jquery-read-more
```
Or import the file directly from a `<script>` tag:
```js
<script src="lib/jquery-read-more.min.js">
```
You can find the minified file in the git repository.
**Attention!** The plugin needs jQuery in order to work.
<br/>
# **Initialisation**
If you use a module syntax, you can import the plugin with
```js
import 'jquery-read-more';
```
If you import the file, the plugin will be loaded when the DOM is ready.
<br/>
# **Usage**
Using the plugin is simple, let's show a minimal example:
```html
<div id="text-container" data-controller="#readMore">
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Iusto, optio,
dolorum provident rerum aut hic quasi placeat iure tempora laudantium
ipsa ad debitis unde? Iste voluptatibus minus veritatis qui ut.
</p>
<div id="readMore">Read More</div>
</div>
```
Note the `data-controller` attribute that points to the read more `div`. Then activate the plugin from JS:
```js
$("#text-container").readMore({lines: 2});
```
This will clip the text after two lines, adding the ellipsis if the text is truncated.
If the text is shorter than 2 lines, the read more `div` will be hidden and no ellipsis is shown.
It is possible to apply `.readMore({lines: x})` also to multiple elements at once.
# **Interactive Example**
An interactive example is available [here](https://github.com/AndreF010203/jQuery-Read-More)
<br/>
# **Options**
The complete list of options accepted as input:
| Name | Required | Default Value | Description |
|:----------:|:-------------:|:------:|:------:|
| lines | **required** | *none* | The number of lines to show before cutting the text. Is the only mandatory input. |
| readMoreLabel | *optional* | "Read more" | Label for the read more / expand link |
| readLessLabel | *optional* | "Read less" | Label for the read less / collapse link |
| ellipsis | *optional* | "..." | Label for the text to add at the end in case of text clamping |
| splitOn | *optional* | " " | String or regex, define a custom splitting character |
<br/>
# **Methods**
The plugin accepts also the following methods:
| Name | Usage | Description |
|:------:|:-----:|:--------------------:|
| destroy | `.readMore('destroy')` | Remove the plugin and reset the initial state |
<br/>
# **Browser Compatibility**
Tested and working on the following:
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Google_Chrome_icon_%28September_2014%29.svg/768px-Google_Chrome_icon_%28September_2014%29.svg.png" width="40" height="40"> <span>Chrome 86</span>
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/a/a0/Firefox_logo%2C_2019.svg/815px-Firefox_logo%2C_2019.svg.png" width="40" height="40"> <span>Firefox 82</span>
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/18/Internet_Explorer_10%2B11_logo.svg/1200px-Internet_Explorer_10%2B11_logo.svg.png" width="40" height="40"> <span>Internet Explorer 11</span>
<img src="https://pic.clubic.com/v1/images/1755232/raw" width="60" height="40"> <span>Edge 86</span>
# **License**
[MIT](./LICENSE)
# **Support**
If you like this plugin, you can support my work with [a beer or a coffe](https://paypal.me/afacchini1)