Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | 1x |
/**
*
* Return true if the selected DOM-element found by given selector is visible and within the viewport.
*
* <example>
:index.html
<div id="notDisplayed" style="display: none"></div>
<div id="notVisible" style="visibility: hidden"></div>
<div id="notInViewport" style="position:absolute; left: 9999999"></div>
<div id="zeroOpacity" style="opacity: 0"></div>
:isDisplayedInViewport.js
:isDisplayed.js
it('should detect if an element is visible', () => {
let isDisplayedInViewport = $('#notDisplayed').isDisplayedInViewport();
console.log(isDisplayedInViewport); // outputs: false
isDisplayedInViewport = $('#notVisible').isDisplayedInViewport();
console.log(isDisplayedInViewport); // outputs: false
isDisplayedInViewport = $('#notExisting').isDisplayedInViewport();
console.log(isDisplayedInViewport); // outputs: false
isDisplayedInViewport = $('#notInViewport').isDisplayedInViewport();
console.log(isDisplayedInViewport); // outputs: false
isDisplayedInViewport = $('#zeroOpacity').isDisplayedInViewport();
console.log(isDisplayedInViewport); // outputs: false
});
* </example>
*
* @alias element.isDisplayedInViewport
* @return {Boolean} true if element(s)* [is|are] displayed
* @uses protocol/selectorExecute, protocol/timeoutsAsyncScript
* @type state
*
*/
import { ELEMENT_KEY } from '../../constants'
import { getBrowserObject } from '../../utils'
import isDisplayedInViewportScript from '../../scripts/isDisplayedInViewport'
export default function isDisplayedInViewport () {
return getBrowserObject(this).execute(isDisplayedInViewportScript, {
[ELEMENT_KEY]: this.elementId, // w3c compatible
ELEMENT: this.elementId // jsonwp compatible
})
}
|