Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/modularorg/modularload

□ Dead simple page transitions and lazy loading.
https://github.com/modularorg/modularload

fetch javascript lazy-loading page-transitions pjax pushstate

Last synced: 3 days ago
JSON representation

□ Dead simple page transitions and lazy loading.

Awesome Lists containing this project

README

        






modularLoad


Dead simple page transitions and lazy loading.

## Installation
```sh
npm install modularload
```

## Why
- Simple
- Lightweight
- Minimal configuration
- No dependencies

## Usage
```js
import modularLoad from 'modularload';

this.load = new modularLoad({
enterDelay: 300
});
```
```html


Hello


Read more

```

#### With custom transitions
```js
import modularLoad from 'modularload';

this.load = new modularLoad({
enterDelay: 300,
transitions: {
transitionName: {
enterDelay: 450
},
transitionTwoName: {
enterDelay: 600
}
}
});
```
```html



Contact


Hello


Read more



```

#### With custom container
```js
import modularLoad from 'modularload';

this.load = new modularLoad({
enterDelay: 600,
transitions: {
article: {
enterDelay: 300
}
}
});
```
```html



Article One


Text



Article One
Article Two

```

#### With lazy images
```js
import modularLoad from 'modularload';

this.load = new modularLoad();
```
```html



Hello





Read more


```

#### With events
```js
import modularLoad from 'modularload';

this.load = new modularLoad();

this.load.on('loaded', (transition, oldContainer, newContainer) => {
console.log('👌');

if (transition == 'transitionName') {
console.log('🤙');
}
});
```

#### With methods
```js
import modularLoad from 'modularload';

this.load = new modularLoad();

this.load.goTo('/page', 'transitionName');
```

## Options
| Option | Type | Default | Description |
| ------ | ---- | ------- | ----------- |
| `name` | `string` | `'load'` | Data attributes name |
| `loadingClass` | `string` | `'is-loading'` | Class when a link is clicked. |
| `loadedClass` | `string` | `'is-loaded'` | Class when the new container enters. |
| `readyClass` | `string` | `'is-ready'` | Class when the old container exits. |
| `transitionsPrefix` | `string` | `'is-'` | Custom transitions class prefix. |
| `transitionsHistory` | `boolean` | `true` | Redo the custom transitions while using the back button. |
| `enterDelay` | `number` | `0` | Minimum delay before the new container enters. |
| `exitDelay` | `number` | `0` | Delay before the old container exists after the new enters. |
| `loadedDelay` | `number` | `0` | Delay before adding the loaded class. For example, to wait for your JS DOM updates. |
| `transitions` | `object` | `{}` | Custom transitions options. |

## Attributes
| Attribute | Values | Description |
| --------- | ------ | ----------- |
| `data-load-container` | ` `, `string` | Container you want to load with optional string. |
| `data-load` | `string`, `false` | Transition name or disable transition. |
| `data-load-url` | `boolean` | Update url without loading container. |
| `data-load-src` | `string` | Lazy load src attribute. |
| `data-load-srcset` | `string` | Lazy load srcset attribute. |
| `data-load-style` | `string` | Lazy load style attribute. |
| `data-load-href` | `string` | Lazy load href attribute. |

## Events
| Event | Arguments | Description |
| ----- | --------- | ----------- |
| `loading` | `transition`, `oldContainer` | On link click. |
| `loaded` | `transition`, `oldContainer`, `newContainer` | On new container enter. |
| `ready` | `transition`, `newContainer` | On old container exit. |
| `images` | | On all images load. |

## Methods
| Method | Description |
| ------ | ----------- |
| `goTo('href'[, 'transition'][, true])` | Go to href. With optional transition name and boolean for url update only. |