custom-scroll-behaviors v1.0.12
custom-scroll-behaviors-js (v1.0.7) - in development
Library for scroll events on webpages, including parallax effects and much more, easy to use with custom elements and JS only approach (coming soon). See test/example projects and the source at github. Supports all known desktop and mobile browsers (except IE and Opera mini).
current version (1.0) supports
- custom html elements for scroll behaviors
- predefined behaviors for
- vertical/horizontal movement
- color change
- opacity change
- custom behavior to adjust to your needs
- automatically adjust the height of the body (optional)
next version (1.1) will support:
- js only approach (without custom html)
- animation types (like ease)
Install and Import
You can install the module
- with npm:
npm i custom-scroll-behaviors
- without npm: download the package and move it into your project
To import
in simple projects (front-end html import):
<head> <script type="module" src="../../target/index.js"></script> <script type="module"> import { scrollElementsConfig, scrollHandler, } from "../../target/index.js"; scrollElementsConfig.autoSizePage = true; scrollHandler.init(); </script> </head>
in React projects:
React.useEffect(() => { const loadingScrollBehavior = import("custom-scroll-behaviors"); loadingScrollBehavior.then((scrollBehavior) => { scrollBehavior.scrollElementsConfig.autoSizePage = true; scrollBehavior.scrollHandler.init(); }); }, []);
Usage of custom HTML elements
add the behaviors to an element by adding the custom element as a child
<div class="some-style">
<vertical-scroll-behavior
start="0px"
end="700px"
start-pos="0vh"
end-pos="90vh"
></vertical-scroll-behavior>
<rgba-color-scroll-behavior
start="100px"
end="1000px"
start-color="#ff0000ff"
end-color="#0000ffff"
>
</rgba-color-scroll-behavior>
</div>
Elements
Name |
---|
vertical-scroll-behavior |
horizontal-scroll-behavior |
visibility-scroll-behavior |
rgba-color-scroll-behavior |
custom-scroll-behavior |
Properties of the custom elements
On all behaviors
name | usage | allowed values |
---|---|---|
start | start of the animation(scroll distance from top) | number with unit (px,vh,vw)(no unit will default to px) |
end | end of the animation(scroll distance from top) | number with unit (px,vh,vw)(no unit will default to px) |
speed | multiplier for scroll-value | positive number |
repeat | let the animation repeator continue itself | "repeat" / "continue"optional |
Each behavior also has a start and end value (like the start and end position). Of the five attributes : start,end,speed,"start-value","end-value" exactly 4 have to be specified Start and end parameters are allowed to end with +self or -self to add or remove the own height or width (mostly height)
On vertical and horizontal behaviors
name | usage | allowed values |
---|---|---|
start-pos | position of the element at the start of the animation(left/top of the element) | number with unit (px,vh,vw)(no unit will default to px) |
end-pos | position of the element at the end of the animation(left/top of the element) | number with unit (px,vh,vw)(no unit will default to px |
On visibility behavior
name | usage | allowed values |
---|---|---|
start-opacity | opacity of the element at the start of the animation | number between 0 and 1 |
end-opacity | opacity of the element at the end of the animation | number between 0 and 1 |
On rgba background color behavior
name | usage | allowed values |
---|---|---|
start-color | color of the element at the start of the animation | hex rgba value (#ffffffff) |
end-color | color of the element at the end of the animation | hex rgba value (#ffffffff) |
On custom behavior
name | usage | allowed values |
---|---|---|
start-value | value of the element at the start of the animation | number |
end-value | value of the element at the end of the animation | number |
css-attribute | name of the css attribute that is animated | string (valid attribute) |
css-attribute-unit | unit of the attribute (like "px") | string |
css-attribute-pre-unit | pre unit of the attribute (like "#" for colors) | string |
Usage of JS only approach
(coming soon)
Config
name | usage | allowed values |
---|---|---|
autoSizePage | sets the height of the body to the end of the last animation(won't be the right height for every website) | boolean |
General Information
interfering behaviors will be overridden by the last one