Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zeshanshani/simple-load-more
This jQuery function will add a functionality to load 5 (or custom) more items. No AJAX functionality.
https://github.com/zeshanshani/simple-load-more
jquery jquery-plugin load-more
Last synced: 2 months ago
JSON representation
This jQuery function will add a functionality to load 5 (or custom) more items. No AJAX functionality.
- Host: GitHub
- URL: https://github.com/zeshanshani/simple-load-more
- Owner: zeshanshani
- License: mit
- Created: 2019-02-22T15:37:17.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2022-06-13T15:17:39.000Z (over 2 years ago)
- Last Synced: 2024-08-08T21:33:48.251Z (6 months ago)
- Topics: jquery, jquery-plugin, load-more
- Language: JavaScript
- Size: 51.8 KB
- Stars: 33
- Watchers: 4
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Simple Load More
This jQuery plugin will add a functionality to load 5 (or custom) more items. Best for lists that are long and you want to hide all except first 5 (or custom) and then show a "Load More" button. When that button is clicked, it loads another 5 items.*Note: this is not AJAX based. It just hides all the items except the first 5 (or custom) and shows another 5 when button is clicked.*
## Downlaod
### Via NPM
Download this plugin using this NPM commend.
```
npm i simple-load-more
```### Regular
Simply close this repository or download it as zip. After that, include the `jquery.simpleLoadMore.js` file in the head or footer of your HTML page.
``` HTML
```
You can also use the minified version, which is: `jquery.simpleLoadMore.min.js`
## Usage
``` JS
$('.some-element').simpleLoadMore({
item: '.element-item',
count: 5,
// itemsToLoad: 10,
// btnHTML: 'View More '
});
```## Options
| Option | Type | Default | Description |
` | Wrap custom HTML tag around the 'Load More' button. Or set this to `false` to completely remove the wrapper |
| ------ | ---- | ------- | ----------- |
| item | string (jQuery Selector) | null | Set the class of the actual items this plugin should take in count. |
| count | integer | 5 | Set the number of items to show at first and load after the button is clicked (if `itemsToLoad` is not set) |
| itemsToLoad | integer | value of `count` | set the number of items to load. Set to -1 to load all at once. |
| btnHTML | string (html) | `View More ` | Set a custom button here. |
| btnText | string | `View More` | Set button's custom text here. Use placeholders `{showing}` and `{total}` for showing items counter. Where `{showing}` shows the current number of items displaying and `{total}` shows the total items one instance has. |
| cssClass | string | `load-more` | Set the custom CSS class for the instance. Do not include dot in the class name, e.g., `new-class` |
| showCounter | boolean | false | Shows the counter in a separate tag. By default enabling this option will show a text `Showing X out of X` before the load more button. View Demo for the example. |
| counterText | string | `Showing {showing} out of {total}` | Set custom counter text here. Use placeholders `{showing}` and `{total}` in the text. Where `{showing}` shows the current number of items displaying and `{total}` shows the total items one instance has. |
| btnWrapper | string (html) \\| boolean | `
| btnWrapperClass | string | null | Add a custom CSS class to the button wrapper. |
| easing | string | `fade` | This property determines how the items should load when the button is clicked. You can set it to `fade` or `slide`. |
| easingDuration | string | `400` | Defines how long it should take to load next items. The value is in milliseconds. |
| `onLoad` | callback function | `function() {}` | Read more under "Events" section below. |
| `onNextLoad` | callback function | `function() {}` | Read more under "Events" section below. |
| `onComplete` | callback function | `function() {}` | Read more under "Events" section below. |## Events
With the version 1.6.0, we are introducing callbacks. You can use these callback functions to perform some extra actions during the lifecycle of SLM (SimpleLoadMore) instance.
| Event | Params | Description |
| ------ | ---- | ----------- |
| `onLoad` | `$items`, `$btn` | This event fires on first time the SLM instance is fully initialized. Parameter `$items` refer to the all the items in the instance. `$btn` refers to the load more button element. `this` directs to the main SLM element. You can use it to target sub elements. |
| `onNextLoad` | `$items`, `$btn` | This event fires everytime next batch of items are loaded. Parameter `$items` refer to the all the items in the instance. `$btn` refers to the load more button element. `this` directs to the main SLM element. You can use it to target sub elements. |
| `onComplete` | `this` | This event fires when all the items have been loaded. `this` directs to the main SLM element. You can use it to target sub elements. |Using the callback function is very simple. Here's an example:
```JS
$('.callback-onload').simpleLoadMore({
item: 'div',
count: 5,
onLoad: function($items, $btn) {
// Perform actions here.
},
onNextLoad: function($items, $btn) {
// Perform actions here.
},
onComplete: function() {
// Perform actions here.
},
});
```Check out the demo for callbacks to see it in action: https://zeshanshani.github.io/simple-load-more/demos/demo.html#callbacks
## Changelog
#### 1.6.0
- Feature: Introducing Callbacks 🎉
- Callback: `onLoad` fires when instance is fully loaded
- Callback: `onNextLoad` fires every time next batch of items are laoded
- Callback: `onComplete` fires when all items are loaded#### 1.5.3
- Bugfix: typo in variable declaration of using ; instead of ,
- Bugfix: incorrect counter fix so when count is greater than total items length, then show items length instead.#### 1.5.2
- Improvement: remove button wrapper as well when all items have been loaded.
#### 1.5.0
- Feature: ability to set a custom button wrapper and wrapper class
- Feature: ability to change easing to 'slide'. Default is 'fade'