bim-ui-tools
v1.1.0
Published
Provides ui tools
Downloads
8
Readme
BIM UI TOOLS
Provides ui tools.
Sticky
Outtil qui permet de sticker un élément dans un parent au scroll.
Le dom doit permettre d'identifier les éléments suivants :
- (optionnel) Parent element wrapper qui défini les limites de stick haut et bas: data-sticky-parent
- Wrapper (en fait le placeholder) : data-sticky-wrapper
- Element : data-sticky-content
Attention Sticky On Scroll ne gère rien graphiquement. Il permet juste de se brancher sur des changements d'état via des events.
ex:
import { StickyOnScrollKeys, stickMeOnScroll } from "bim-ui-tools/sticky"
document.querySelectorAll('[data-sticky-content]').forEach( item => {
stickMeOnScroll(item)
.on(StickyOnScrollKeys.event.onStateChange, evt =>
{
// Ajoute le state dans le DOM.
evt.ev_data.sticky.wrapper.setAttribute('data-sticky-parent-state', evt.ev_data.sticky.state.parent);
})
});
Ex: de sass :
[data-sticky-parent-state="screenInParent"]{
height: var(--stickyWrapperHeight);
[data-sticky-content]{
position: fixed;
top: var(--stickyContentTop);;
bottom: auto;
}
}
[data-sticky-parent-state="screenUnderParent"] {
height: var(--stickyWrapperHeight);
[data-sticky-content]{
position: absolute;
background: yellow;
bottom:0;
top: auto;
}
}
Anchor
Permet d'identifier l'affichage ou non des éléments d'une ancre à l'écran.
anchorMeOnScroll prend en paramètre la bare de navigation.
Ex :
import { AnchorOnScrollKeys, anchorMeOnScroll } from "bim-ui-tools/anchor"
document.querySelectorAll('nav.anchor').forEach( item => {
anchorMeOnScroll(item)
.on( AnchorOnScrollKeys.event.onStateChange, (evt) => {
document.querySelectorAll('nav.anchor .on').forEach(item=> {item.classList.remove('on')})
evt.ev_data.anchor.anchor.classList.add("on")
})
})