CDN
Usage
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/vanilla-infinite-marquee@1.0.12/infinite-marquee.min.css">
<script src="https://cdn.jsdelivr.net/npm/vanilla-infinite-marquee@1.0.12/infinite-marquee.bundle.js"></script>
If you're using npm
, in the command prompt run:
npm install vanilla-infinite-marquee
If you're using yarn
, run:
yarn add vanilla-infinite-marquee
To use the component, first import CSS styles
into your CSS/SCSS
file:
@import 'node_modules/vanilla-infinite-marquee/infinite-marquee.css'; //OR
@import 'node_modules/vanilla-infinite-marquee/infinite-marquee.scss';
<div class="marquee-container">
<p>Horizontal Marquee Item 1</p>
<p>Horizontal Marquee Item 2</p>
</div>
import InfiniteMarquee
into your JS
file:
import InfiniteMarquee from 'vanilla-infinite-marquee';
new InfiniteMarquee({
element: '.marquee-container',
speed: 25000,
smoothEdges: true,
direction: 'right',
gap: '15px',
duplicateCount: 2,
mobileSettings: {
direction: 'top',
speed: 20000
},
on: {
beforeInit: () => {
console.log('Not Yet Initialized');
},
afterInit: () => {
console.log('Initialized');
}
}
});
Option | Type | Default | Description |
---|---|---|---|
element |
string , Node |
null |
Selector |
direction |
string |
"left" |
Direction of Marquee animation, "left" , "right" , "top" , "bottom" |
spaceBetween |
string |
"0px" |
Gaps to be used for "left" or "right" direction ONLY |
gap |
object |
{vertical: "5px", "horizontal: "0px" } |
Gaps to be used for "top" or "bottom" direction ONLY |
speed |
number |
10000 |
Speed of animation in ms |
smoothEdges |
boolean |
false |
Whether to smooth covered edges or not |
fullContainer |
boolean |
true |
Fill the full width of container(DESKTOP ONLY), for "left" or "right" direction ONLY |
fullContainerWidth |
number |
100 |
Full width container size with number value that later converts into percentage |
pauseOnHover |
boolean |
false |
Pause animation on hover |
destroyOnDesktop |
boolean |
false |
Destroy Marquee structure and animation on "Desktop" |
destroyOnMobile |
boolean |
false |
Destroy Marquee structure and animation on "Mobile" |
debugging |
boolean |
false |
Debug in console each event of Marquee lifecycle |
elementClass |
string |
marquee-container |
Class of Container that will be used to destroy Marquee |
duplicateCount |
number |
1 |
Count of marquee be duplicated to show an effect of continuous flow |
breakpointSize |
number |
991.8 |
"max-width" breakpoint for responsive devices, accepted only single breakpoint |
mobileSettings |
object |
{} |
Responsive options (works only for spaceBetween , gap , speed and direction properties) |
on |
object |
{} |
Object to contain callback functions below |
beforeInit |
function |
null |
A callback function that invokes before marquee initialization |
afterInit |
function |
null |
A callback function that invokes after marquee initialization |
pauseAnimation |
function |
null |
A callback function that invokes on Pause |
resumeAnimation |
function |
null |
A callback function that invokes on Resume |