Listen on changes of element i
Listen on the change of HTML Element.
By default, listen on the size change of element.
const onresize = require('@lakca/onresize') onresize(document.body, size => { console.log(size.width) // offsetWidth console.log(size.height) // offsetHeight })
Change default triggering frame(30) interval.
onresize(document.body, { frame: 60 }, ...)
Custom
getSize
andequal
to listen on changes of other properties.
onresize(document.body, {
getSize(el) {
const pos = el.getBoundingClientRect()
return {
x: el.top,
y: el.left
}
},
equal(a, b) {
return a.x === b.x && a.y === b.y
}
}, ...)
API
onresize(HTMLElement, [options], callback)
options.frame [number: 30]
it uses
window.requestAnimationFrame
to conduct periodic detection of element changes.
The comparing operands are data retrieved in every adjacent triggering frame.
options.getSize [function=defaultGetSize]see
window.requestAnimationFrame
function defaultGetSize(ele) { return { width: ele.offsetWidth, height: ele.offsetHeight } }
options.equal [function=defaultEqual]By default, the program listens on element layout size changing, you can provide
options.getSize
andoptions.equal
to change retrieved data and comparing method, such as position of element.
function defaultEqual(one, other) { return one.width === other.width && one.height === other.height }
LICENSEAlso, you can listen on any change that is related to screen refreshing.
MIT
版权声明:
1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。2、网站不提供资料下载,如需下载请到原作者页面进行下载。