/react-poppy

React popover that scales, follows, scrolls, and grows

Primary LanguageJavaScriptMIT LicenseMIT

#React-Poppy

React popover that scales, follows, scrolls, and grows

##Usage

npm install react-poppy

or

clone/download and use appropriate script in /dist

##Demos

##Psuedo JSX

<Poppy content="World" title="Hello" constrainTo="body" toggleOnClick>
    <button style={{margin:20,padding:10,height:50}}>HOVER ME</button>
</Poppy>

###Properties

  • children=[ReactElement] - the target element that the popover should follow and position around

  • constrainTo=[element,ReactElement,querySelector='parent'] - used to calculate the bounding area that the popover should be contained in. If using a string, the querySelector is matched upward from the popover's location in the DOM tree. Parent is a special selector that will use the React element containing the popover.

  • show=[boolean=undefined] - forces the popover to show. Show takes precedence over all other types of show/hide interactions.

  • showDelay=[number=300] - amount of time that needs to pass before the popover begins to show.

  • hideDelay=[number=320] - amount of time that needs to pass before the popover begins to hide.

  • track=[boolean=false] - enables an internal timer to track the target element's position and size

  • constrainHeight=[boolean=true] - limits the height to the constrainTo's available space

  • constrainWidth=[boolean=true] - limits the width to the constrainTo's available space

  • arrowSize=[number=15] - changes the size of the arrow

  • region=["left"|"right|"top|"bottom"|undefined] - forces popover placement in a particular region

  • bindScroll=[boolean=false|querySelector] - binds the popover to the window scroll event if "true" or an element matching the querySelector traversing upwards from the popover target.

  • bindWindowResize=[boolean=false] - binds the popover to the window resize event

  • arrowStyle=[object={}] - arrowStyle override

  • backgroundStyle=[object=undefined] - backgroundStyle override

  • wrapperStyle=[object=undefined] - wrapperStyle verride

  • titleStyle=[object=undefined] - titleStyle override

  • className=[string=''] - className to apply to popover

  • title=[string=''|ReactElement] - title to be used.

  • showOnMouseEnter=[boolean=true] - popover will show when mouse enters target element

  • hideOnMouseLeave=[boolean=true] - popover will hide when mouse leaves target element.

  • toggleOnClick=[boolean=false] - popover will toggle show/hide when target element is clicked.

  • persistOverContent=[boolean=false] - popover will stay visible while the mouse is over the popover

  • onHide=[function] - event called when the popover is hidden

  • onShow=[function] - event called when the popover is shown

###Methods -- warning you should generally control these behaviors with props to keep behaviors consistent

  • track() - start tracking target element

  • untrack() - stop tracking target element

  • show() - show popover

  • hide() - hide popover

  • refresh() - redraw popover