Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=UYJ5G65M6ZA28
Tags: page scrolling, page animation, smooth scroll, navigation, single-page navigation
Requires at least: 3.3
Tested up to: 5.3
Stable tag: 1.6.7
License: The MIT License (MIT)
License URI: http://opensource.org/licenses/MIT
Create links that scroll the page smoothly to any id within the document.
== Description ==
**Page scroll to id** is a fully featured plugin which replaces browser's "jumping" behavior with a [smooth scrolling animation](http://manos.malihu.gr/repository/page-scroll-to-id/demo/demo.html), when links with href value containing # are clicked. It provides all the basic tools and advanced functionality for single-page websites, in-page navigation, back-to-top links etc. with features like:
* Adjustable scrolling animation [duration and easing (over 30 easing types)](http://manos.malihu.gr/page-scroll-to-id-for-wordpress/#plugin-settings-scroll-type-easing)
* Link and target highlighting via ready-to-use CSS classes
* [Vertical](http://manos.malihu.gr/repository/page-scroll-to-id/demo/demo.html) and/or [horizontal](http://manos.malihu.gr/repository/page-scroll-to-id/demo/demo-horizontal-layout.html) scrolling
* Scrolling from/to different pages (scrolling to target id on page load)
* Offset scrolling by pixels or element selector with custom expressions
* Insert link and target id buttons in post visual editor
* Link-specific offset, scrolling duration, highlight target etc.
[Demo (default animation duration/easing, link highlighting etc.)](http://manos.malihu.gr/repository/page-scroll-to-id/demo/demo.html)
= Plugin resources, links and tutorials =
* [Plugin homepage](http://manos.malihu.gr/page-scroll-to-id-for-wordpress/)
* [Knowledge Base - FAQ](http://manos.malihu.gr/page-scroll-to-id-for-wordpress/2/)
* [Basic tutorial](http://manos.malihu.gr/page-scroll-to-id-for-wordpress-tutorial/) - [Video tutorial](http://manos.malihu.gr/page-scroll-to-id-for-wordpress-tutorial/#video-tutorial)
* [Using Page scroll to id with the Divi Builder plugin](http://manos.malihu.gr/using-page-scroll-to-id-with-the-divi-builder-plugin/)
* [Using Page scroll to id with SiteOrigin Page Builder](http://manos.malihu.gr/using-page-scroll-to-id-with-siteorigin-page-builder/)
* [Using Page scroll to id with WPBakery Page Builder](http://manos.malihu.gr/using-page-scroll-to-id-with-wpbakery-page-builder/)
* [Using Page scroll to id with Elementor Page Builder](http://manos.malihu.gr/page-scroll-to-id-elementor-guide/)
= Requirements =
Page scroll to id requires WordPress version **3.3** or higher (jQuery version **1.7.0** or higher) and your theme **must** (and should) have `wp_head()` and `wp_footer()` functions. In some Microsoft Windows based web servers some plugins might produce an error 500 (depends on server/PHP configuration). To pinpoint the issue [enable debugging](https://codex.wordpress.org/Debugging_in_WordPress) in `wp-config.php` and check `wp-content/debug.log` file for relevant errors.
= GDPR (General Data Protection Regulation) =
The plugin is GDPR compliant. It does not use or store any kind of user information/data. In fact, it's functionality has nothing to do with user data (personal or otherwise). So there's that.
= Quick usage and tips =
1. [Install the plugin](http://wordpress.org/plugins/page-scroll-to-id/installation/).
2. The plugin is enabled by default on your WordPress Menu links, so you can start adding custom links and set their URL to the id/target you want to scroll to.
3. Create id targets within your content using plugin's "Insert Page scroll to id target" button and/or shortcode (see contextual "Help" menu in plugin settings page) in post visual/text editor. Create targets in widgets areas using "Page scroll to id target" widget.
5. Create links within your content using plugin's "Insert/edit Page scroll to id link" button and/or shortcode in post visual/text editor. You can also add the class `ps2id` on any existing link you want to be handled by the plugin.
For more info [see plugin's basic tutorial](http://manos.malihu.gr/page-scroll-to-id-for-wordpress-tutorial/)
== Installation ==
= Automatic =
1. Click 'Add New' under 'Plugins' menu in WordPress.
2. Perform a search for the term 'Page scroll to id' and in search results, click 'Install/Install Now' under plugin name.
3. When installation is finished, click 'Activate Plugin'.
= Manual =
1. Download and extract the plugin.
2. Upload the entire `page-scroll-to-id` folder to `/wp-content/plugins/` directory.
3. Activate the plugin through the 'Plugins' menu in WordPress.
= Configuration =
Configure plugin options by clicking 'Settings' under plugin name or through the 'Settings' menu in WordPress administration.
== Frequently Asked Questions ==
Please visit plugin's [Knowledge Base - FAQ](http://manos.malihu.gr/page-scroll-to-id-for-wordpress/2/) for up-to-date info and guides.
= Is it GDPR compliant? =
= Why it hasn't been updated for x weeks/months? =
Because it works and it already has a ton of features. The plugin has little dependency on WordPress functions so it doesn't need to be updated every time WordPress updates (that's why it works on ancient WordPress versions like 3.3).
== Screenshots ==
1. "Page scoll to id" settings
2. "Page scoll to id" settings help
3. Multiple selectors in plugin settings
4. "Page scoll to id" target widget and widget id values
5. Visual editor "Insert/edit Page scoll to id link" modal
6. Visual editor "Insert Page scoll to id target" modal
7. Gutenberg block editor "Page scoll to id target" custom block
== Changelog ==
= 1.6.7 =
* Fixed issue with links having meta characters (e.g. %) in URL.
* Extended the default excluded selectors.
* Fixed issue with TwentyTwenty theme smooth scrolling feature (https://wordpress.org/support/topic/scrolling-not-working-5/)
* New feature for developers: add plugin options manually (via js) to overwrite the ones in plugin settings.
= 1.6.6 =
* Fixed dynamic elements would not work automatically (issue in 1.6.5).
* Fixed some links would not get highlighted when using full URLs (issue in 1.6.5).
= 1.6.5 =
* Added new option to exclude specific selectors from being handled by the plugin.
* Added new option 'Auto-generate #ps2id-dummy-offset element'.
* Added 'Page scroll to id target' block for Gutenberg block editor.
* Added new feature for Gutenberg block editor:
* Fixed highlight not working in URLs with an apostrophe.
* Fixed [this issue](https://wordpress.org/support/topic/only-works-on-initial-page-load/#post-11168522) regarding plugin's default selector when using non-WordPress jQuery library.
* Fixed [this minor issue](https://wordpress.org/support/topic/no-more-smooth-scrolling/).
* Fixed multisite issue where few plugin options would not save/update properly.
* Fixed [issue #10](https://github.com/malihu/page-scroll-to-id/issues/17)
* Updated plugin's contextual help and documentation.
= 1.6.4 =
* Fixed a minor bug affecting the "Prevent other scripts from handling plugin's links" option.
= 1.6.3 =
* Fixed a bug which was breaking page scrolling in some WordPress themes/installations in version 1.6.2.
* Fixed a bug regarding links with URL in non-latin characters (e.g. Greek, Cyrillic etc.).
* Better plugin version control for multisite installations.
* Fixed PHP 7 notices and warnings.
* Plugin is now enabled by default on all links with a non-empty hash value (e.g. #some-id) in their URL.
* Changed default scroll duration from 1000 to 800 milliseconds.
* Added support for anchors inside SVG elements.
* Added new option 'Verify target position and readjust scrolling if necessary'.
* Added new option 'Use element custom offset when scrolling from/to different pages'.
* Added new option 'Remove URL hash when scrolling from/to different pages'.
= 1.6.2 =
* Changed default options for scroll duration and easing type. Plugin is now enabled by default on WordPress menu items/links. These changes affect only first-time installations (upgrading won't change these options).
* Extended plugin's settings page and renamed few options to less technical terms.
* Added special class/option for creating links with alternative scroll duration/speed.
* Extended plugin buttons on WordPress visual editor (non-shortcode links, custom classes etc.).
* Added new option 'Append the clicked link’s hash value to browser’s URL/address bar'.
* Added new option 'Stop page scrolling on mouse-wheel or touch-swipe'.
* Added new option 'Prevent other scripts from handling plugin’s links'.
* Added new option 'Normalize anchor-point targets'.
* Relative-root links are now properly highlighted.
* Added `wp-config.php` option for selecting which script files the plugin loads (minified or uncompressed).
* Only necessary CDATA values are passed on the front-end script.
* Added compatibility for latest non-WordPress jQuery versions (2.x and 3.x).
* Fixed a bug regarding shortcode's offset attribute when used with "auto" layout.
* Fixed a php notice when updating plugin from version 1.6.0.
* Added workaround for IE/Edge not starting from the top when scrolling to hash on page load.
* Updated readme.txt, contextual help and documentation.
= 1.6.1 =
* Added additional default selectors: `.ps2id > a[href*='#'],a.ps2id[href*='#']`.
* Added "Page scroll to id target" widget.
* Added custom buttons in WordPress visual editor for plugin's shortcodes insertion.
* Added new option 'Enable on WordPress Menu links' in plugin settings.
* Fixed browser's history back button when 'Scroll to location hash' option is enabled.
* Updated readme.txt.
* Extended help and documentation.
= 1.6.0 =
* Fixed contextual help shortcut links in plugin settings page.
* Added new option 'Enable for all targets' for 'Scroll to location hash'.
* Added new option 'Delay' for 'Scroll to location hash'.
* Fixed an issue regarding invalid selectors with location hash.
* Updated readme.txt.
* Updated help.
= 1.5.9 =
* Extended `ps2id` shortcode for creating `div` elements (in addition to anchors).
* Added `ps2id_wrap` shortcode for creating target wrappers in content editor.
* Extended offset selector expressions with `:position`, `:height()` and `:width()`.
* Updated readme.txt.
* Updated help.
= 1.5.8 =
* Fixed various PHP notices in debug mode.
* Minor script optimizations.
= 1.5.7 =
* Added 'Highlight by next target' option. When enabled, highlight elements according to their target and next target position (useful when targets have zero dimensions).
* Extended `ps2id` shortcode for creating targets in content editor.
= 1.5.6 =
* Changed the way 'Force single highlight' option works. When enabled, it now highlights the first highlighted element instead of last.
* Extended highlight and target classes with additional ones in order to differentiate the first and last elements. You can now use `.mPS2id-highlight-first`, `.mPS2id-highlight-last`, `.mPS2id-target-first` and `.mPS2id-target-last` in order to target the first and last highlighted links and targets in your CSS.
* Added 'Keep highlight until next' option. When enabled, the plugin will keep the current link/target highlighted until the next one comes into view (one element always stays highlighted).
* Added 'Disable plugin below screen-size' option. Set the screen-size (in pixels), below which the plugin will be disabled.
= 1.5.5 =
* Fixed contextual help links in plugin settings page.
* Updated Offset field to accept comma separated values for defining different offsets for vertical and horizontal layout (e.g. `100,50`).
* Added 'Scroll to location hash' option. When enabled, the plugin will scroll to target id (e.g. `
This simple plugin permanently redirects all 404's to the main blog URL.
Add an SVG image captcha and honeypot to your contact form 7 form.
A light-weight plugin which will remove the advertisement HTML comments co...
Let we say that you have been told to add some custom code (HTML, JavaScrip...
WordPress, Github, Docker, Jenkins, and Watchtower. We will need to use the...
After the very last action taken in the function when a user logs in, the w...
Why do you need to manage customer information and customer interactions, a...
Advanced SEO can get very technical, however there are a few fundamentals y...