Navigation without reloading - JavaScript Dynamic Loader

Sh Raj - Mar 11 - - Dev Community

DynamicLoaderJS (https://dynamicloaderjs.github.io/)

DynamicLoaderJS is a lightweight JavaScript library that enables dynamic loading of content into web pages without page refresh. It provides a simple and flexible way to update specific sections of a website, such as the main content area, header, or footer, without reloading the entire page.

logo

GitHub license
GitHub issues
GitHub stars
GitHub forks

Table of Contents

Features

  • Dynamic loading of content into HTML elements
  • Smooth animation effects during content transition
  • Support for loading specific sections like header and footer
  • URL update without page refresh
  • Custom events for content load completion
  • Ability to load CSS and JavaScript files dynamically
  • Built-in loader element for visual feedback during content loading

Autoload

Run the autoload function after every function happened, because js can't target the new rendered html. So, that nesting of elements can happen. (Optional)

DynamicLoader.autoLoad();
Enter fullscreen mode Exit fullscreen mode

Installation

You can include DynamicLoaderJS in your project by downloading the DynamicLoader.js file and including it in your HTML file:

<script src="path/to/DynamicLoader.js"></script>
Enter fullscreen mode Exit fullscreen mode

Alternatively, you can use a CDN by including the following script tag in your HTML file:

<script src="https://cdn.jsdelivr.net/gh/SH20RAJ/DynamicLoaderJS@main/DynamicLoader.js"></script>
Enter fullscreen mode Exit fullscreen mode

Usage

  1. Add the data-load attribute to the HTML element where you want to load the content. Set the value of data-load to the URL of the content you want to load.
<div data-load="page1.html" data-target="#content"></div>
Enter fullscreen mode Exit fullscreen mode
  • The data-load attribute specifies the URL of the content to be loaded.
  • The data-target attribute specifies the selector of the target element where the content will be loaded.
  1. Optionally, you can add the data-loader attribute to show a loader during content loading. Set data-loader to "true" to enable the loader.
  2. Use data-title to change the document title after click.
<div data-load="page1.html" data-target="#content" data-loader="true" data-title="Page1"></div>
Enter fullscreen mode Exit fullscreen mode
  1. You can also load specific sections like header and footer separately. Add the data-load attribute to the respective HTML element and specify the target selector using the data-target attribute.
<header data-load="header.html" ></header>
<footer data-load="footer.html" ></footer>
Enter fullscreen mode Exit fullscreen mode
  1. To load CSS or JavaScript files dynamically, use the loadFile function with the URL of the file and the file type as parameters.
DynamicLoader.loadFile('https://cdn.example.com/styles.css', 'css');
DynamicLoader.loadFile('https://cdn.example.com/script.js', 'js');
Enter fullscreen mode Exit fullscreen mode
  1. You can also load content into an element using JavaScript by calling DynamicLoader.load() and passing the selector, URL, and optional loader element.
DynamicLoader.load('#op', 'page3.html');
Enter fullscreen mode Exit fullscreen mode

This will load the content from page3.html into the element with the selector #op.

Examples

For detailed usage examples, please refer to the Examples directory in this repository.

Contributing

Contributions are welcome! If you have any ideas, suggestions, or bug reports, please create an issue or submit a pull request.

License

This project is licensed under the MIT License.

Credits

Created with โค๏ธ by SH20RAJ

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .