@testplane/webdriverio
Version:
Next-gen browser and mobile automation test framework for Node.js
17 lines (16 loc) • 2.51 kB
JavaScript
// src/scripts/isElementInViewport.ts
function isElementInViewport(elem) {
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;
}
export {
isElementInViewport as default
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3NjcmlwdHMvaXNFbGVtZW50SW5WaWV3cG9ydC50cyJdLAogICJzb3VyY2VSb290IjogIi9Vc2Vycy9rcm9tYW41MTIvZ2VtaW5pLXRlc3Rpbmcvd2ViZHJpdmVyaW8vcGFja2FnZXMvd2ViZHJpdmVyaW8iLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBjaGVjayBpZiBlbGVtZW50IGlzIHdpdGhpbiB0aGUgdmlld3BvcnRcbiAqIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2RhdmlkdGhlY2xhcmsvNTUxNTczMyNnaXN0Y29tbWVudC0yMTEzMjA1XG4gKlxuICogUGxlYXNlIHVwZGF0ZSBgaXNFbGVtZW50Q2xpY2thYmxlLmpzYCBpZiB0aGUgc2NyaXB0IGlzIHVwZGF0ZWQhXG4gKiBAcGFyYW0gIHtIVE1MRWxlbWVudH0gZWxlbSAgZWxlbWVudCB0byBjaGVja1xuICogQHJldHVybiB7Qm9vbGVhbn0gICAgICAgICAgIHRydWUgaWYgZWxlbWVudCBpcyB3aXRoaW4gdmlld3BvcnRcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaXNFbGVtZW50SW5WaWV3cG9ydCAoZWxlbTogSFRNTEVsZW1lbnQpIHtcbiAgICBpZiAoIWVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGNvbnN0IHJlY3QgPSBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG5cbiAgICBjb25zdCB3aW5kb3dIZWlnaHQgPSAod2luZG93LmlubmVySGVpZ2h0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpXG4gICAgY29uc3Qgd2luZG93V2lkdGggPSAod2luZG93LmlubmVyV2lkdGggfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKVxuXG4gICAgY29uc3QgdmVydEluVmlldyA9IChyZWN0LnRvcCA8PSB3aW5kb3dIZWlnaHQpICYmICgocmVjdC50b3AgKyByZWN0LmhlaWdodCkgPiAwKVxuICAgIGNvbnN0IGhvckluVmlldyA9IChyZWN0LmxlZnQgPD0gd2luZG93V2lkdGgpICYmICgocmVjdC5sZWZ0ICsgcmVjdC53aWR0aCkgPiAwKVxuXG4gICAgcmV0dXJuICh2ZXJ0SW5WaWV3ICYmIGhvckluVmlldylcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7QUFRZSxTQUFSLG9CQUFzQyxNQUFtQjtBQUM1RCxNQUFJLENBQUMsS0FBSyx1QkFBdUI7QUFDN0IsV0FBTztBQUFBLEVBQ1g7QUFFQSxRQUFNLE9BQU8sS0FBSyxzQkFBc0I7QUFFeEMsUUFBTSxlQUFnQixPQUFPLGVBQWUsU0FBUyxnQkFBZ0I7QUFDckUsUUFBTSxjQUFlLE9BQU8sY0FBYyxTQUFTLGdCQUFnQjtBQUVuRSxRQUFNLGFBQWMsS0FBSyxPQUFPLGdCQUFtQixLQUFLLE1BQU0sS0FBSyxTQUFVO0FBQzdFLFFBQU0sWUFBYSxLQUFLLFFBQVEsZUFBa0IsS0FBSyxPQUFPLEtBQUssUUFBUztBQUU1RSxTQUFRLGNBQWM7QUFDMUI7IiwKICAibmFtZXMiOiBbXQp9Cg==