{"id":30712,"date":"2014-07-21T15:33:56","date_gmt":"2014-07-21T15:33:56","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/hash-link-scroll-offset\/"},"modified":"2026-01-07T22:45:57","modified_gmt":"2026-01-07T22:45:57","slug":"hash-link-scroll-offset","status":"publish","type":"plugin","link":"https:\/\/eu.wordpress.org\/plugins\/hash-link-scroll-offset\/","author":10409929,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"0.4.1","stable_tag":"0.4.1","tested":"6.9.4","requires":"5.5","requires_php":"","requires_plugins":null,"header_name":"Hash Link Scroll Offset","header_author":"WebDevStudios","header_description":"","assets_banners_color":"734b47","last_updated":"2026-01-07 22:45:57","external_support_url":"","external_repository_url":"","donate_link":"http:\/\/webdevstudios.com","header_plugin_uri":"http:\/\/webdevstudios.com","header_author_uri":"http:\/\/webdevstudios.com","rating":4.7,"author_block_rating":0,"active_installs":1000,"downloads":25324,"num_ratings":15,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"0.1.7":{"tag":"0.1.7","author":"tw2113","date":"2016-07-08 03:24:13"},"0.1.8":{"tag":"0.1.8","author":"tw2113","date":"2016-12-10 21:12:09"},"0.2.0":{"tag":"0.2.0","author":"tw2113","date":"2022-01-28 18:13:15"},"0.2.1":{"tag":"0.2.1","author":"webdevstudios","date":"2023-08-22 22:00:41"},"0.2.2":{"tag":"0.2.2","author":"webdevstudios","date":"2024-02-02 16:09:43"},"0.3.0":{"tag":"0.3.0","author":"webdevstudios","date":"2024-03-12 20:41:43"},"0.3.1":{"tag":"0.3.1","author":"webdevstudios","date":"2025-01-30 18:16:04"},"0.3.2":{"tag":"0.3.2","author":"webdevstudios","date":"2025-04-24 20:04:41"},"0.4.0":{"tag":"0.4.0","author":"webdevstudios","date":"2025-10-28 19:43:50"},"0.4.1":{"tag":"0.4.1","author":"webdevstudios","date":"2026-01-07 22:45:57"}},"upgrade_notice":{"":"<ul>\n<li>Small bugfixes<\/li>\n<\/ul>"},"ratings":{"1":1,"2":0,"3":0,"4":0,"5":14},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":2744401,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":2744401,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":2744401,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":2744401,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.7","0.1.8","0.2.0","0.2.1","0.2.2","0.3.0","0.3.1","0.3.2","0.4.0","0.4.1"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[],"plugin_category":[],"plugin_contributors":[77726,77725],"plugin_business_model":[],"class_list":["post-30712","plugin","type-plugin","status-publish","hentry","plugin_contributors-pluginize","plugin_contributors-webdevstudios","plugin_committers-webdevstudios","plugin_support_reps-tw2113"],"banners":{"banner":"https:\/\/ps.w.org\/hash-link-scroll-offset\/assets\/banner-772x250.png?rev=2744401","banner_2x":"https:\/\/ps.w.org\/hash-link-scroll-offset\/assets\/banner-1544x500.png?rev=2744401","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/hash-link-scroll-offset\/assets\/icon-128x128.png?rev=2744401","icon_2x":"https:\/\/ps.w.org\/hash-link-scroll-offset\/assets\/icon-256x256.png?rev=2744401","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Often anchor links can be overachievers and can scroll a user past the section intended. This plugin attempts to change that by offering a setting that allows you to change the scroll offset when clicking anchors. It also adds a nice animated scrolling effect when clicking an anchor rather than the sudden jump that usually occurs. Even handles when visiting a hashed URL directly.<\/p>\n\n<p>Use the <code>no-scroll<\/code> class on any hash links that are not meant to scroll to an area of the page (Navigation for sliders, etc).<\/p>\n\n<p><a href=\"https:\/\/pluginize.com\/?utm_source=hash-link-scroll&amp;utm_medium=text&amp;utm_campaign=wporg\">Pluginize<\/a> was launched in 2016 by <a href=\"https:\/\/webdevstudios.com\/\">WebDevStudios<\/a> to promote, support, and house all of their <a href=\"https:\/\/pluginize.com\/shop\/?utm_source=hash-link-scroll&amp;utm_medium=text&amp;utm_campaign=wporg\">WordPress products<\/a>. Pluginize is not only creating new products for WordPress all the time, but also provides <a href=\"https:\/\/wordpress.org\/plugins\/custom-post-type-ui\/\">ongoing support and development for WordPress community favorites like CPTUI<\/a>, <a href=\"https:\/\/wordpress.org\/plugins\/cmb2\/\">CMB2<\/a>, and more.<\/p>\n\n<!--section=installation-->\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Upload the entire <code>\/hash-link-scroll-offset<\/code> directory to the <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate Hash Link Scroll Offset through the 'Plugins' menu in WordPress.<\/li>\n<li>Update the \"Hash Link Scroll Offset\" setting on the general settings page, <strong>http:\/\/YOURSITE.COM\/wp-admin\/options-general.php<\/strong>.<\/li>\n<\/ol>\n\n<!--section=changelog-->\n<h4>0.4.1<\/h4>\n\n<ul>\n<li>Updated: Build process changes for compiled assets.<\/li>\n<li>Updated: Confirmed compatibility with WordPress 6.9.<\/li>\n<\/ul>\n\n<h4>0.4.0<\/h4>\n\n<ul>\n<li>Fixed: issues with window scrollY offsets<\/li>\n<\/ul>\n\n<h4>0.3.2<\/h4>\n\n<ul>\n<li>Fixed: textdomain loading timing.<\/li>\n<li>Updated: Confirmed compatibility with WordPress 6.8<\/li>\n<\/ul>\n\n<h4>0.3.1<\/h4>\n\n<ul>\n<li>Fixed: instant jumps instead of smooth scroll from previous jQuery conversion.<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>Updated: Removed jQuery dependency in our javascript<\/li>\n<li>Updated: Escaping and sanitizing of output.<\/li>\n<\/ul>\n\n<h4>0.2.2<\/h4>\n\n<ul>\n<li>Confirmed compatibility with WordPress 6.4<\/li>\n<\/ul>\n\n<h4>0.2.1<\/h4>\n\n<ul>\n<li>Confirmed compatibility with WordPress 6.3<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Misc changes<\/li>\n<li>Tested up to WordPress 5.9 *<\/li>\n<\/ul>\n\n<h4>0.1.8<\/h4>\n\n<ul>\n<li>Adjust JS to account for relative urls.<\/li>\n<li>Add checks for evt and event.preventDefault existing.<\/li>\n<\/ul>\n\n<h4>0.1.7<\/h4>\n\n<ul>\n<li>Refactor JS to be more extensible, and adjust auto-scrolling (when hash exists in URL) to be more intelligent.<\/li>\n<\/ul>\n\n<h4>0.1.6<\/h4>\n\n<ul>\n<li><code>'hash_link_scroll_offset.scroll_to'<\/code> jQuery event fired befor scrolling is initated. Also introduce useful properties, <code>scrollTo<\/code>, <code>initialScroll<\/code>, and <code>isScrolling<\/code>;<\/li>\n<\/ul>\n\n<h4>0.1.5<\/h4>\n\n<ul>\n<li><code>'hash_link_scroll_offset.complete'<\/code> jQuery event fired when scrolling complete.<\/li>\n<\/ul>\n\n<h4>0.1.4<\/h4>\n\n<ul>\n<li>Fix \"Cannot use a scalar value as an array\" debug warning. (<a href=\"https:\/\/core.trac.wordpress.org\/ticket\/29722#comment:8\">Relevant Trac ticket<\/a>)<\/li>\n<\/ul>\n\n<h4>0.1.3<\/h4>\n\n<ul>\n<li>Prevent browser windows from moving\/blinking on initial click of anchor link. Props <a href=\"https:\/\/github.com\/WebDevStudios\/Hash-Link-Scroll-Offset\/pull\/9\">@ImBigWill<\/a>.<\/li>\n<\/ul>\n\n<h4>0.1.2<\/h4>\n\n<ul>\n<li>Automatically compensate for admin bar. Props <a href=\"https:\/\/github.com\/WebDevStudios\/Hash-Link-Scroll-Offset\/pull\/5\">@salcode<\/a>.<\/li>\n<\/ul>\n\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>Add <code>no-scroll<\/code> class exception. Props <a href=\"https:\/\/github.com\/billerickson\">@billerickson<\/a><\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>First release<\/li>\n<\/ul>","raw_excerpt":"Offset the scroll position of anchored links. Handy if you have a sticky header that covers linked material.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/eu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/30712","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/eu.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/eu.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=30712"}],"author":[{"embeddable":true,"href":"https:\/\/eu.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/webdevstudios"}],"wp:attachment":[{"href":"https:\/\/eu.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=30712"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/eu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=30712"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/eu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=30712"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/eu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=30712"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/eu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=30712"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/eu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=30712"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}