Security News
The Unpaid Backbone of Open Source: Solo Maintainers Face Increasing Security Demands
Solo open source maintainers face burnout and security challenges, with 60% unpaid and 60% considering quitting.
@polymer/iron-scroll-threshold
Advanced tools
Triggers an event when nearing the beginning or end of a scrollable element
iron-scroll-threshold
is a utility element that listens for scroll
events from a
scrollable region and fires events to indicate when the scroller has reached a pre-defined
limit, specified in pixels from the upper and lower bounds of the scrollable region.
This element may wrap a scrollable region and will listen for scroll
events bubbling
through it from its children. In this case, care should be taken that only one scrollable
region with the same orientation as this element is contained within. Alternatively,
the scrollTarget
property can be set/bound to a non-child scrollable region, from which
it will listen for events.
Once a threshold has been reached, a lower-threshold
or upper-threshold
event will
be fired, at which point the user may perform actions such as lazily-loading more data
to be displayed. After any work is done, the user must then clear the threshold by
calling the clearTriggers
method on this element, after which it will
begin listening again for the scroll position to reach the threshold again assuming
the content in the scrollable region has grown. If the user no longer wishes to receive
events (e.g. all data has been exhausted), the threshold property in question (e.g.
lowerThreshold
) may be set to a falsy value to disable events and clear the associated
triggered property.
See: Documentation, Demo.
npm install --save @polymer/iron-scroll-threshold
<html>
<head>
<script type="module">
import '@polymer/iron-scroll-threshold/iron-scroll-threshold.js';
</script>
</head>
<body>
<iron-scroll-threshold id="ironScrollTheshold">
<div>content</div>
</iron-scroll-threshold>
<script>
const ironScrollTheshold = document.querySelector('#ironScrollTheshold');
ironScrollTheshold.addEventListener('lower-threshold', () => {
console.log('lower-threshold triggered');
// load async stuff. e.g. XHR
setTimeout(() => {
ironScrollTheshold.clearTriggers();
});
});
</script>
</body>
</html>
import {PolymerElement, html} from '@polymer/polymer';
import '@polymer/iron-scroll-threshold/iron-scroll-threshold.js';
class SampleElement extends PolymerElement {
static get template() {
return html`
<iron-scroll-threshold id="ironScrollTheshold" on-lower-threshold="_loadMoreData">
<div>content</div>
</iron-scroll-threshold>
`;
}
_loadMoreData: function() {
console.log('lower-threshold triggered');
// load async stuff. e.g. XHR
setTimeout(() => {
this.$.ironScrollTheshold.clearTriggers();
});
}
}
customElements.define('sample-element', SampleElement);
If you want to send a PR to this element, here are the instructions for running the tests and demo locally:
git clone https://github.com/PolymerElements/iron-scroll-threshold
cd iron-scroll-threshold
npm install
npm install -g polymer-cli
polymer serve --npm
open http://127.0.0.1:<port>/demo/
polymer test --npm
FAQs
Triggers an event when nearing the beginning or end of a scrollable element
We found that @polymer/iron-scroll-threshold demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 11 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Solo open source maintainers face burnout and security challenges, with 60% unpaid and 60% considering quitting.
Security News
License exceptions modify the terms of open source licenses, impacting how software can be used, modified, and distributed. Developers should be aware of the legal implications of these exceptions.
Security News
A developer is accusing Tencent of violating the GPL by modifying a Python utility and changing its license to BSD, highlighting the importance of copyleft compliance.