* check if element is within the viewport
* https://gist.github.com/davidtheclark/5515733#gistcomment-2113205
*
* Please update `isElementClickable.js` if the script is updated!
* @param {HTMLElement} elem element to check
* @return {Boolean} true if element is within viewport
*/
export default function isElementInViewport (elem: HTMLElement) {
if (!elem.getBoundingClientRect) {
return false
}
const rect = elem.getBoundingClientRect()
const windowHeight = (window.innerHeight || document.documentElement.clientHeight)
const windowWidth = (window.innerWidth || document.documentElement.clientWidth)
const vertInView = (rect.top <= windowHeight) && ((rect.top + rect.height) > 0)
const horInView = (rect.left <= windowWidth) && ((rect.left + rect.width) > 0)
return (vertInView && horInView)
}