react-sticky-header
v0.2.0
Published
Lightweight sticky header made for React that works with both colours and images.
Downloads
1,189
Maintainers
Readme
react-sticky-header
Lightweight sticky header made for React that works with both colours and images. You can see an example implementation over at Guild Wars 2 Armory.
Installation
npm install react-sticky-header
Usage
// Import the base CSS, if you're using webpack just import them straight.
// Else import them into your base CSS.
import 'react-sticky-header/styles.css';
import StickyHeader from 'react-sticky-header';
const MyHeader = () => (
<StickyHeader
// This is the sticky part of the header.
header={
<div className="Header_root">
<h1 className="Header_title">ReactStickyHeader</h1>
<ul className="Header_links">
<li className="Header_link">When</li>
<li className="Header_link">Why</li>
<li className="Header_link">About</li>
</ul>
</div>
}
>
<section>
<p>
This section will be what the sticky header scrolls over before entering into
sticky state. See the gif above or run the test story book to see examples.
</p>
</section>
</StickyHeader>
);
| prop | type | required | description |
|-|-|-|-|
| header | Children | yes | A react element that will be the sticky part of the header. |
| children | Children | no | Elements that you want to appear under the sticky header. |
| headerOnly | boolean | no | Use this to force the header into "sticky" mode. It will automatically hide the children
and calculate the height spacer for header
. |
| onSticky | (boolean) => void | no | Callback fired when the header enters/leaves sticky state. See Sticky State section. |
| backgroundImage | string | no | Self explanatory. |
| backgroundColor | string | no | Self explanatory. |
| className | string | no | Self explanatory. |
| stickyOffset | number | no | The number to offset the sticky header. |
Sticky State
When the component enters sticky state, it will add a class name is-sticky
to the root element of the header.
React Story Book
To run the component in various states, run the following command then go to http://localhost:6006/
.
npm start
Testing
npm test