0.3.1 • Published 9 years ago
viewport-funcs v0.3.1
viewport-funcs
A very limited subset of viewport functions I use every day
Install
npm i viewport-funcsPackage on npm
API
contains(el, offset, check)
Check if el is in the viewport, return a boolean
| Argument | Action |
|---|---|
| el | the tested Html Element el |
| offset | optional offset, default to 0 |
| check | optional check, default to false. If true performs multiple tests explained below |
If check is true, safer but slower tests are performed
- check if
elis a Html Element, with nodeType 1 and landed in the document.body - check if
elhas no size. An empty or adisplay:nonediv or an img with no src will always returnfalse
const contains = require('viewport-funcs/contains')
var el = document.querySelector('.rect')
// true if the element is fully or partially in the viewport
contains(el)margins()
Get the viewport size and margins
left, top, right and bottom are relative to each side of the document
The object returned contains:
| Key | Value |
|---|---|
| width | the viewport width |
| height | the viewport height |
| left | the margin-left, distance between the left of the document and the left of the viewport |
| top | the margin-top, distance between the top of the document and the top of the viewport |
| right | the margin-right, distance between the right of the document and the right of the viewport |
| bottom | the margin-bottom, distance between the bottom of the document and the bottom of the viewport |
The example below shows:
- how to get the viewport bottom-right corner location
- how to get the document width and height
const margins = require('viewport-funcs/margins')
// {width: 591, height: 328, left: 0, top: 56, right: 0, bottom: 316}
var data = margins()
/*
the viewport bottom-right corner location
{x: 591, y: 384}
*/
var br = {x: data.left + data.width, y: data.top + data.height}
/*
the document width and height
{width: 591, height: 700}
*/
var doc = {
width: data.left + data.width + data.right,
height: data.top + data.height + data.bottom
}The returned object is internally cached to boost performance
rect()
Get the viewport size and position
left, top, right and bottom are relative to the top-left of the document
The object returned contains:
| Key | Value |
|---|---|
| width | the viewport width |
| height | the viewport height |
| left | the distance between the left of the document and the left of the viewport |
| top | the distance between the top of the document and the top of the viewport |
| right | the distance between the left of the document and the right of the viewport |
| bottom | the distance between the top of the document and the bottom of the viewport |
This means:
right=left+widthbottom=top+height
The returned object is internally cached to boost performance
const rect = require('viewport-funcs/rect')
// {width: 800, height: 600, left: 10, top: 10, right: 810, bottom: 610}
rect()Thanks
Mainly forked / inspired on
Performance and tips from
License
MIT