
Research
Malicious npm Packages Impersonate Flashbots SDKs, Targeting Ethereum Wallet Credentials
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
hashy-links
Advanced tools
Smooth scroll to internal anchors when clicking "hash" links (e.g. href="#foobar").
Offset scroll amount by the height of a given element including on page load - useful for sticky headers.
npm install --save hashy-links
<nav id="fixedHeader">This is my fix position nav bar</nav>
<a href="#foo" class="smooth-scrolling-links">Click me</a>
import Hashy from 'hashy-links';
const hashy = new Hashy('.smooth-scroll-links', '#fixedHeader', 20);
window.addEventListener('load', () => {
hashy.scrollToLocationHash();
});
Marvelous.
const hashy = new Hashy(link_selector, offset_selector, extra_offset);
link_selector
This is a jQuery selector for links that you want to smooth scroll when clicked. So if you have something like this:
When something with this selector is clicked hashy will look on the current page for an element with the given ID. If this element is not found, the default link's action will be used. This should allow external (not same page) links to be selected without causing problems except...
Potential Issue - If you are on
foo.html
and have a link tobar.html#baz
but#baz
also exists on the current page then your link will effectively be broken. This is an issue that needs to be fixed. You can, and should, avoid this problem by being careful which links to pick with your selector. For example, you probably don't want to dohashy('a')
. Instead you might do something likea[href*=#]:not([href=#])
.
offset_selector
This optional selector is for use with fixed menus that normally cover content when using hash links. For single menus an id selector is recommended, e.g. hashy('#main-menu')
. If you have multiple menus you can pass in a selector that matches multiple items. The scroll will then be offset by the combined height of these elements.
extra_offset
An optional number of pixels to offset the scroll by, in addition the distance calculated by offset_selector
. Can be positive or negative. You could even make it really, really negative and it will just stop at the top of the page. I've got you covered, bud.
There are also a couple of helper methods you can use if you like.
hashy.scrollToHash(hash, quick, callback, extra_offset)
Smooth scroll to the given hash and update the address bar.
hash - The selector to scroll to. e.g. #somewhere
quick - (optional. Default: false) Don't transition - just go there!
callback - (optional) Function to call after scrolling has finished.
extra_offset - (optional) An additional pixel value to offset the scroll by
hashy.setHash(#whatever);
Update the address bar without scrolling the page.
If your content resizes when the page loads, you're going to want to call hashy after that is done, otherwise the offset calculations may be incorrect. Something like this might help:
window.addEventListener('load', () => {
Hashy.init('.smooth-scrolling-links', '#fixed-header');
});
FAQs
Hash link fix
The npm package hashy-links receives a total of 1 weekly downloads. As such, hashy-links popularity was classified as not popular.
We found that hashy-links demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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.
Research
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last week’s supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.