Page scroll to id for WordPress tutorial
Basic tutorial for using “Page scroll to id” WordPress plugin on your WordPress site.
- Creating id targets
- Creating links
- Links highlighting
- Offset scrolling for sticky menus
- Scrolling from/to different pages
- Video tutorial
In order to use the plugin on your WordPress site (after installing and activating it), you need to do the following:
- Create id targets the page will scroll to or find existing id attributes in your theme to use with your links.
- Create links that point to those targets or enable the plugin on links that already exist in your site.
Creating id targets
Creating id targets in post block editor (Gutenberg)
You can create your targets in more than one ways in the block editor, e.g. using the group block, the “Page scroll to id target” block, the shortcode block, block class attribute, HTML anchor field etc.
Create id targets using the group block
Click on the “Add block” icon and select “Group”. This will insert a general container block that can group other blocks and we can add the id
on this group/general container block.
On the group block properties (right panel) you can add the id you want in the “HTML Anchor” field.
Create id targets using the “HTML Anchor” field
If you use headings in your content, you can use the “HTML Anchor” attribute of blocks to set a target id. Select your block, click “Advanced” in the right panel and insert the target id you want in the “HTML Anchor” field.
Create id targets using plugin’s “Page scroll to id target” block
The plugin has its own custom block for inserting targets: “Page scroll to id target”
Create id targets using “Additional CSS Class(es)” field
You can generate id targets for any block element, by setting its class name to: ps2id-id-yourid
, changing the yourid
part to the id value you want.
Click on a block element (e.g. a paragraph), click “Advanced” in the right panel and set the target id you want in the “Additional CSS Class” in the form of:
ps2id-id-
plus the id you want.
For example, if you want to create the target id “last-section”, give the element the CSS class:
ps2id-id-last-section
.
Create id targets using the shortcode block
You can use plugin’s shortcodes in the block editor. Click on the “Add block” icon and select “Shortcode”.
Add the [ps2id id='section-1'/]
in the shortcode field to create a target with id section-1
.
You can also use the [ps2id_wrap]
shortcode accordingly.
Creating id targets in post visual editor (classic “old” editor)
In post visual editor, click the toolbar button “Insert Page scroll to id target” to create a target at the cursor position in the editor.
In “Page scroll to id target” modal insert the id value you want (e.g. some-id
) and click “OK”. The target shortcode (e.g. [ps2id id='some-id' target=''/]
) will appear in the editor. Update/save the post/page. You can now use this id value in your link(s) URL (e.g. #some-id
).
Creating id targets in post editor via shortcodes
In post visual or text editor, enter [ps2id id='some-id'/]
in the place you want to create the target and set the id
attribute to the value you want. This will create a simple anchor-point target. If you want to wrap your content (or part of your content) in a target id (same as adding an id attribute to some content), use the [ps2id_wrap]
shortcode:
[ps2id_wrap id='some-id'] your content... [/ps2id_wrap]
Update/save the post/page so you can use this target value in your link(s) URL (e.g. #some-id
).
Click here for more info on target shortcodes
Creating id targets in HTML
Wrap your content in a div with an id attribute (recommended for better link highlighting) or add simple anchor points (with id attributes) before each content section. Examples:
<div id="section-1"> <p>Section 1 content...</p> </div> <div id="section-2"> <p>Section 2 content...</p> </div> <div id="section-3"> <p>Section 3 content...</p> </div>
<a id="section-1"></a> <p>Section 1 content...</p> <a id="section-2"></a> <p>Section 2 content...</p> <a id="section-3"></a> <p>Section 3 content...</p>
Creating id targets in WordPress widget areas
Create targets in your widget areas (Appearance → Widgets) via plugin’s “Page scroll to id target” widget.
Keep in mind that all WordPress widgets have existing id values that you can use with your links. You can find these id values within each active widget under “Page scroll to id target” label. The option to display these values is “Display widgets id attribute” which is enabled by default.
FAQ
Creating links
Creating links in WordPress Menus
Edit your menu and add “Custom links” as these type of links allow us to enter a custom URL with the id we want. Your links URL should be in the form of #some-id
, http://my-site.com/page/#some-id
, /page/#some-id
etc.
Please note that if you want your links to work from other/different pages, you’ll need to insert the full address with the target id in their URL (e.g. http://my-site.com/page/#some-id
) or the relative-root URL (e.g. /page/#some-id
).
Creating links in post block editor (Gutenberg)
You can use plugin’s shortcodes in the block editor. Add the shortcode: [ps2id url='#some-id']link text[/ps2id]
inside any block element to create a link that points to the “some-id” target.
Keep in mind that since “Page scroll to id” version 1.6.3, the plugin is enabled by default on all links with a non-empty hash value (e.g. #some-id
) in their URL. This means that you don’t have to use plugin’s shortcode to create links, as any link you create via the WordPress editor will work.
Creating links in post visual editor (classic editor)
In post visual editor, click the toolbar button “Insert/edit Page scroll to id link” to create a link at the cursor position in the editor or from text you’ve already selected.
#some-id
, http://my-site.com/page/#some-id
, /page/#some-id
etc. When ready, click “OK” and the link will appear in the editor. You can edit the link via both “Insert/edit link” and “Insert/edit Page scroll to id link” buttons, as well as inline.
“Page scroll to id link” modal provides additional options like “Offset” and “Custom class(es)” that can be used to change link’s offset, its scroll duration/speed etc.
Creating links in post editor via shortcodes
In post visual or text editor, enter [ps2id url='#some-id']link text[/ps2id]
in the place you want to create the link and set the url
attribute and link’s text to the values you want. The shortcode provides the same options as plugin’s “Insert/edit Page scroll to id link” toolbar button via attributes.
Creating links manually
Any link with ps2id
class or m_PageScroll2id
rel attribute value will be handled by the plugin. For example:
<a href="#some-id" class="ps2id">link text</a> <a href="#another-id" rel="m_PageScroll2id">link text</a>
Enabling the plugin on links that already exist in your site
You can instruct “Page scroll to id” to handle any link in your page(s) by using the “Selector(s)” field in plugin settings.
If you need to enable “Page scroll to id” on all links with URL containing a hash (#
), insert the following value in “Selector(s)” field:
a[href*=#]:not([href=#])
Click here for more info on “Selector(s)”
FAQ
- How do I make my links work from any page in my site?
- Can I have links with different offsets?
- How to make the plugin work with WordPress Menu links?
- Can I have links with different scroll duration/speed?
Links highlighting
Each time a target element is visible on the screen (i.e. is within the viewport), the plugin adds the mPS2id-highlight
class to its associated link or links (i.e. the links that scroll to this target). You can use this class in your theme’s stylesheet or custom CSS to style the current/active link(s), e.g.
a.mPS2id-highlight{ background: #ff0; }
Common case scenario and example
Lets say you have a sticky menu containing links that scroll to various targets/sections within the page. Your links text color is black (which may be set by your theme or some other stylesheet):
.memu-item a{ color: black; }
When scrolling through page sections (i.e. targets) you want the link of the visible/current target to become red. You can do this by adding the following CSS:
.memu-item a.mPS2id-highlight{ color: red; }
Notes and more info
The default highlight classes for the links are: mPS2id-highlight
, mPS2id-highlight-first
and mPS2id-highlight-last
(you can change these class-names in plugin’s settings if you want).
For more information about the highlight classes and options see “Classes & highlight options”, “Highlight selector(s)” and FAQ below.
FAQ
- How do I make my links stay highlighted for longer distance while scrolling?
- Multiple links get highlighted! How to highlight only one?
Offset scrolling for sticky menus
If your page has a top sticky/fixed-positioned menu, you’ll probably need to use plugin’s “Offset” option in order to prevent the menu from overlapping your content. This option allows us to shift (i.e. offset) scrolling, so in the case of a top sticky menu, we usually need to “stop” scrolling a few pixels before the target reaches the top of the page (to accommodate for the space the sticky menu occupies).
Go to Settings → Page scroll to id → Offset and insert an offset amount equal to your sticky menu height (in pixels). You can insert its height value as a number (e.g. 100
) or you can insert your menu selector (e.g. #my-sticky-menu
), so the plugin calculates its height automatically.
The plugin provides special selector expressions in order to define advanced offsets and work with responsive menus. For more info see “Offset” option.
Scrolling from/to different pages
The plugin has the option to scroll from/to different pages enabled by default. This means that when you click a link which points to a target id on another page, you’ll still get the smooth scrolling effect which will happen immediately after that page is fully loaded.
The only thing you’ll need is to make sure your links have the full address with the target id in their URL (e.g. http://my-site.com/page/#some-id
).
hi.
I love your plugin. The menus work great.
I’m trying to make it work with buttons. i’m using page builder in the sydney theme and can’t use css. there’s no option to add a real attribute. i’m assuming to make the buttons scroll instead of jump i need to use a selector. i’m not exactly sure what to put, or where to put it. can you help me out?
e.g. i’d like the “OUR SERVICES” button to scroll instead of jump to the services section.
my website is mynextimages.com
any help would be much appreciated. thanks.
Hi,
The easiest way would be to enable the plugin on all links containing a hash (#) in their URL/href attribute. To do this, go to plugin settings and change “Selector(s)” field to:
a[rel='m_PageScroll2id'], a[href*='#']
This way you don’t need to add or change any attributes.
Hi there!
I need you help. I have created an accordion with many items. what I need is to active from a different module bottoms linking to the different accordion items.
I have tried the “target bottom” but it does not work. I must doing something wrong
I hope you can understand my question and help me.
Patricia
Hi Patricia,
It would be better if you could send me your link in order to understand the issue and try to provide a solution. Is this possible?
Hi Malihu!
Thanks for the answer.
The web is this
http://www.salvaescalerasvalencia.es/elevadores-acuaticos-serie-aquadive
What I want is, the bottom “Más información” in the image slider link to the accordion items below
Thanks a lot!
Patricia
For each position you want the page to scroll to (when clicking a link with hash+id), you need to create a target element.
So in your case, if you want the page to be scrolled on the position where accordion items begin, you need to create a target element right above the accordions.
I don’t know how you added the accordions but in the wp editor you can insert:
[ps2id id='accordions-section'/]
to create a (hidden) target element with the id “accordions-section”.
Then, you’d have to change the “Más información” link URL to:
#accordions-section
and give the link the class “ps2id”. If for some reason you cannot give extra classes to “Más información” link, you can add its selector in “Selector(s)” field in plugin settings:
a[rel='m_PageScroll2id'], .et_pb_more_button[href*='#']
If you want a more advanced functionality like each “Más información” link in the slider to scroll to different accordions, you’d have to create different target elements above each accordion item.
You could go even further and toggle accordions after the page has scrolled to their position but this would require an extra custom script in your template.
Hello Malihu,
Perfect job bro… Everything works well … I only have one Issue and I would like to ask you:
I have many six menu items in my website. Only one menu Item I wanted to scroll in the frontpage …. I did it that according to your instructions. But I have an issue when I want to navigate from another menu item ex. Contact and Click on the “Scroll Down” Menu there is no respond.
Better with examples | This is the website:
http://www.xscapereality.com/
When you click on Book Now everything is Great from the homepage. If you are in News / Blog or in Franchise etc and you Click on Book Now there is no respond (
http://www.xscapereality.com/news-blog/#loc
). Is it a way when you are in another menu – Not in Frontpage! to Send in another link ex. here:http://www.xscapereality.com/loc/
?Great Job !! 🙂
Thank you Sir,
Yours Sincerely,
Hello Antoni and thanks for your comments 🙂
In order to make your link(s) work from/to different pages/URLs, you simply need to insert the full address in the link’s href/URL.
For example in your page, change “Book Now” link URL from:
#loc
to:
http://www.xscapereality.com/#loc
and everything will work.
In HTML, when you set a link’s href attribute to just hash+value (e.g.
#loc
) the actual link address becomes: current page URL+hash+value, so you just need to give it the full/absolute URL you want to in order to work from any page.For more info and for making page scrolling work from/to different pages check sections “Making your links work from other/different pages” and “Scrolling on page load” on the guide above.
Thanks mate for your quick respond…
I will try according to your instructions and I will let you know about it..
Thank you,
Yours Sincerely,
Thank you Sir,
Everything works perfect… Amazing Operation!
*** If you can, only delete the backlink ( XscapeReality ) but keep the address for the help of other people!
Thank you again,
Yours Sincerely,
Done. Glad I could help 🙂
I am trying to insert a page scroll to id on a page other than my home page.
I first opened the page editor and went toe the Text editing portion of the page. I created the target as:
What are sessions like?
I then went back to the visual tab of the editor. I highlighted the text I want the visitor to click on “What are sessions like?” and then clicked the “page scroll to id target button”. When the dialogue box popped up I entered in “section-1” in the id box. I left the “highlight target selector box empty”. I then clicked on.
Now when I am returned to the visual editor I see “[ps2id id=’section-1′ target=”/]” in place of where I originally typed “What are sessions like?” as the words I want the visitor to click on.
I then hit publish. When I view the page nothing is there for me to click on. Where did I make a mistake. Thanks for your help.
Hello,
To create the link, click in the editor where you want the link to appear (no text selection!), click on “Insert Page scroll to id link” button and enter the URL/id (e.g.
#section-1
), the Link Text (e.g.What are sessions like?
) and optionally, the offset you want.To create the target (the place where page will scroll to), click in the editor where you want the target to be, click on “Insert Page scroll to id target” button and enter the id (e.g.
section-1
).Note that currently, in plugin version 1.6.1, the two visual editor buttons are very basic, meaning that text selection (among others) won’t work when creating links. This is going to change in version 1.6.2 which will have much more advanced and feature-rich buttons.
Let me know if you need more help
i used this plugin to make my website navigate vertically but when i press the menu button to navigate to other page section , it navigates but with page loading , how to fix that
I need more info in order to help. Can you post your link or code? For example, what’s your link’s URL and what’s the page address?
Hello,
Thanks for the awesome plugin. This is my third website i use it on, but somehow on this site i dont manage to make it scroll to exactly where i want.
The link i added above, i want when you click on the “Recensie schrijven” button, it scrolls to the review form below. I tried so many page-id’s to make it work and the best i could find was to add #state in the button url. But it scrolls a little bit too low.
Do you have any suggestion what i should add to the button url to make it scroll just so the review form is at the top/center of the screen?
Thanks in advance
I added this line above the targetted area: [ps2id id=’home-section-2’/]
Then i placed #home-section-2 in my button url
I have no idea what im doing is the right way. The review form is still a little bit too low when you click the button “recensie schrijven” on this page: http://www.herenkapperderijn.nl/klantervaringen/
Hi,
You have to enable the plugin on the “Recensie schrijven” button. As it is now, the link is not handled by ‘Page scroll to id’ (the page just jumps to the hash).
You can enable the plugin on your link in several ways. Choose the one you want:
a) Give your link the class
ps2id
b) Give your link the rel attribute
m_PageScroll2id
c) Add your link selector to the “Selector(s)” field in plugin settings (along with the default one). For example:
a[rel='m_PageScroll2id'], a.ubtn-link[href*='#']
Let me know
PS. Adding
[ps2id id='home-section-2'/]
above the targeted area is correct.Thanks for the reply. The first 2 options make the page scroll down smoothly, instead of instant jump to the targeted area. I like that alot.
But it’s still a little bit too low.
I leave my url link in the button: #home-section-2?
Ps: Its just the first row of the review form what cant be seen after the scrolling down. I was wondering, maybe thats cause i made the header of my website higher with CSS code and the scroll to id plugin stops at the original spot, without the extra margin i gave to the header?
Sorry i talk so much haha. What i mentioned above is correct. I added a empty line to the row above and now it’s perfect.
It looks and works perfect. Amazing plugin.
Thx!
Yes, what happens is the fixed header “hides” the content beneath, so when scrolling to the top of the review form, it stops to the “correct” position but its top part is hidden by the fixed/sticky header.
Your solution of adding extra empty lines works but if you want a more “global” solution that’ll work on any number of similar links, you can use plugin’s ‘Offset’ option.
You can offset page scrolling by entering your fixed header height (in pixels) to the ‘Offset’ field in plugin settings:
80
or insert your fixed header selector so the plugin script adjusts to its height automatically:
#header.navbar-fixed-top
Yes.
Absolutely perfect!
Adding the 80 offset did the trick for sure.
Again thanks mister:)
Thank you for the great plugin. I’m using the Prallax Pro theme. On the home have I have 5 home sections. I want to place a button on one home section that scrolls down to another home section on the same page. I’m lost with how to do this.
I’m not sure how ‘Parallax pro’ theme administration works but you should normally be able to use plugin’s shortcodes(?)
If you’re editing the sections via WordPress visual editor you can use the shortcodes to create the links and targets for each section.
For example, in the end of the first section you could insert:
[ps2id url='#home-section-2']Go to section 2[/ps2id]
which creates the link and in the beginning of the second section you could insert:
[ps2id id='home-section-2'/]
which creates the target.
In WordPress visual editor you can also use plugin’s buttons (in the toolbar) instead of inserting the shortcodes manually.
Does this help?
Hi, I was able to follow up to the creating links in WordPress menu. After that, I don’t know where to put the content. Am I supposed to create different pages (or posts?) for each menu or should all the content be in one page. Where should I put the content of those? Where do I also put the you’re talking about.
(www.oneavisharesidences.ph)
Thanks for your help!
Hello,
You can put your content wherever you want (as you would do without the plugin). If you want a single-page website you’d normally insert the content on a single page/post (e.g. your front-page).
You don’t have to create different pages/posts (although the plugin will work with separate pages by checking “Scroll to location hash”).
You can create target elements via plugin’s shortcodes (or using wp visual editor buttons on latest version) within the post/page editor. For example, in your homepage you can insert the following shortcode to the location you want the
#section_about
link to scroll to:[ps2id id='section_about'/]
There’s also the option to create target elements on widgets using plugin’s widget or by using existing widgets id attributes (displayed in Appearance/Widgets on each active widget).
Hello,
thanks for your plugin.
I work with the Virtue theme (free version). I tried to open a accordion on id. I found the following post from you: https://wordpress.org/support/topic/open-accordion-on-id.
I have inserted the code in footer.php but it did not work. Could you please have a look on my code.
Thank you very much.
Carolin
Hi,
Not sure if you still have the issue but if you can send me your URL I might be able to help.
Hi,
Thank you for this great plugin. I was struggling to write some code like this myself and was running into a number of issues that the plugin has solved.
One question I have is at 1000px wide my website’s menu ceases to be sticky so I’d like to be able to set the offset to zero for screens sizes below that. Is there any way to do this?
Thanks for any advice.
I put any empty element into the page, where its height wouldn’t effect the layout, and then used CSS to set that element’s height to match the required offset. I then used the selector for that element in the Offset field and that has solved the problem.
Thanks again!
Good day, Am having problem with the making the page scroll to id of this site work, I have watched most of the videos and used most of the tutorials but I still get it wrong, dont know why. If i set it, it will still not scroll to the particular page.
Please help me out
Thank You.
Tonie
Hi,
I checked your page and I can’t find any element with id
section_about
. There’s no target element to scroll to…Have you checked “Creating the target sections” in the guide?
Please, can you mail me the step to step on how I can do it.
Please am getting confused on doing it, I am beginner and having issue with it
Please help me out
Thank You
Tonie
Hi, I am building a new site for a client who wants the horizontal scroll, kindly explain how to do this and also slow it down, I have had no problems with the vertical scroll save for the speed. Thanks for the great job!
Hi,
I have followed your instructions and I created menu links by adding m_PageScroll2id in the Link Relationship (XFN) field (at this moment only ‘PROGRAM’ menu link has this value). I can’t figure out why this menu link is not working at all. Links without m_PageScroll2id are working as you can see: http://www.rdsummit.pl/
Hello,
I checked your link and the rel attribute is missing from “PROGRAM”. I manually added it (
rel="m_PageScroll2id"
) via browser’s developer tools and page scrolling worked as expected.Hello,
I have followed your instructions and developed my page but the buttons when clicked with the link (ex: http://www.business-travel.gr/en/dmc-greece/#section-1) is significantly slow. I am wondering if i made mistakes. Could you please check my page and let me know of what you thing?
Great plugin btw..
Thank you in advance
Hi,
It seems that the English version (http://www.business-travel.gr/en/dmc-greece/#section-1) does not exist. When the link is clicked, it goes to a different URL (http://www.business-travel.gr/dmc-greece/#section-1) probably because WordPress can’t find the en version of the page. That’s why the page doesn’t scroll (it just loads another page/URL).
You also have an error in your other links URL with double slash before the “EN” part and capital letters (e.g. http://www.business-travel.gr//EN/DMC-GREECE/#section-2).
Normally, each language version of the site should have its own custom menu.
i cant get the offeset to make a difference. Please help as its overlapping my content. i played around with so many setting i cant figure it out.
http://marketing2themax.co.za/
Your links are not handled by the plugin (they’re handled by some other script by the theme or another plugin).
You need to enable ‘Page scroll to id’ on your menu links by adding the
m_PageScroll2id
value in ‘Link Relationship (XFN)’ field.See “Creating links in WordPress Menus” for more info
thanks for the fast reply. I have done as suggested but it still doesnt seem to be linked. Glad to see you reply so quickly
It seems then that the links are handled by another script. I see an additional js click event on your menu links which is probably scrolling the page and prevents ‘Page scroll to id’ from working on your menu links. You can check it by deactivating ‘Page scroll to id’ and see if page scrolling is still working. I don’t know if there’s an option in your theme to disable this and only use ‘Page scroll to id’ for scrolling…
Well its the sydney them i dont think theres a way to manually get red of it without code which i have no clue how to do. Any ideas?
Can’t say… You’ll have to contact the theme developer.
Thank you for such a great plugin!
I’ve been able to figure out how to use the plugin for the most part. However, I can’t for the life of me figure out how to use the offset function. As someone said earlier, no matter what I put into the offset option, my sections are still covered by my sticky header. Can you please advise?
Thanks,
Rich
Hello,
Change offset value to a number without the “px” part, e.g.
25
Also, your target elements are below the section titles, so I’m not sure if 25 pixels is enough(?)
Let me know 🙂
Hi there. This is a great plugin. I’ve managed to set up the scrolling to page sections very easily, but am having difficulty setting up the links to highlight on rollover. At the moment they’re stuck on white. Any ideas?
Hi,
The plugin doesn’t deal with general CSS like :hover. In general, you need to insert a :hover rule in your theme’s CSS. In your case something like this:
.custom.main-navigation .navbar-default .navbar-nav > .active > a:hover{ color: red; /* set the color you want */ }
In addition, to highlight the links while page is scrolling you need something like:
.custom.main-navigation .navbar-default .navbar-nav > .active > a.mPS2id-highlight, .custom.main-navigation .navbar-default .navbar-nav > .active > a.mPS2id-highlight:focus{ color: yellow; /* set the color you want */ }
Thanks so much. Works perfectly now!
I’d like to link menu items to three different text boxes that are within the same page section.
The website is: http://www.precisionoutcomes.uk/
and the three sections I want to link to are ‘Platform’, ‘Services’ and ‘Devices’
Every time I put a href link in one of the boxes the navigation takes me to the first block (Platform). Any ideas of how I can fix this?
I’m assuming you’re talking about the mobile/narrow layout, correct?
At the moment, in your menu you have the links:
#platform #services #devices
but in your content you only have the
services
id (there are no elements with idplatform
ordevices
).The
services
id element is above the 3 sections, so the page scrolls to this position when “SERVICES” link is clicked (the other 2 links do nothing as there’s no id to scroll to).You should:
a) Move the
services
id element right before the “Services” column (currently it’s above the 3 columns wrapper).b) Add another 2 elements with id attributes
platform
anddevices
and place them right before the “Platform” and “Devices” columns accordingly.Hi, I’m trying to get an alternative “add to cart” button link to a tab at the bottom of the page.
This is how I’m linking adding the button and calling the tab so far in my function.php. I don’t understand how to link the though. Please help.
//Add to Cart Function add_action('woocommerce_single_product_summary','replace_add_to_cart'); function replace_add_to_cart() { global $product; if ( ! $product->is_in_stock() ){ remove_action( 'woocommerce_single_product_summary','woocommerce_template_single_add_to_cart'); add_action( 'woocommerce_single_product_summary','consult_bezambar_expert', 30 ); function consult_bezambar_expert() { global $product; echo '<form action="' . esc_url("#tab-Consult_Expert") . '" rel="scroll_to_tab" method="get"> <button type="submit" class="single_add_to_cart_button button alt">Consult Bez Ambar Expert</button> </form>'; } } } //Change Review tab to inquiry add_filter( 'woocommerce_product_tabs', 'woo_remove_product_tabs', 98 ); function woo_remove_product_tabs( $tabs ) { unset( $tabs['reviews'] ); // Remove the reviews tab return $tabs; } add_filter( 'woocommerce_product_tabs', 'woo_new_product_tab' ); function woo_new_product_tab( $tabs ) { // Adds the new tab $tabs['Consult_Expert'] = array( 'title' => __( 'Contact Expert', 'woocommerce' ), 'priority' => 50, 'callback' => 'woo_new_product_tab_content' ); return $tabs; } function woo_new_product_tab_content() { $product = get_product(); $product_title = get_the_title( $product->ID ); $product_sku= $product->sku; ?> <section class="Inquiry"> <div id="section-1">You can call us at 1-866-644-8111 or fill out the form below.</div> <?php echo do_shortcode( '[gravityform id="2" name="Inquiry" title="false" description="false" field_values="title_product='.$product_title.'" field_values="sku_product='.$product_sku.'"]'); ?> </section><!-- /.west-product-inquire --> <?php } function wc_direct_link_to_product_tabs() { if( is_product() ) { ?> <script type="text/javascript"> jQuery(document).ready(function($) { if( window.location.hash ) { // Vars var tab = window.location.hash.replace('#', ''); var tab_content = 'tab-' + tab; // Tabs $( 'li.description_tab' ).removeClass( 'active' ); $( 'li.' + tab + '_tab' ).addClass( 'active' ); // Tabs content $( '#tab-description' ).hide(); $( '#' + tab_content ).show(); } // when the tab is selected update the url with the hash $(".tabs a").click( function() { window.location.hash = $(this).parent('li').attr("class").replace(' active', '').replace('_tab', ''); }); }); </script> <?php } } add_action( 'wp_footer', 'wc_direct_link_to_product_tabs', 30 );
I don’t really understand what you’re trying to do or what happens. I need to see which link you’re adding, in which page and what’s the target.
Can I have 2 or 3 buttons on a single page with different scrolling speeds assigned to each button. I run a guitar chords website and the tempo of the song determines the speed you need the page to scroll. Would this be a possibility? Currently I’m using some javascript scrolling thing (not a plugin) and it’s okay, but I only have one speed.
http://www.liveloveguitar.com/adele-hello-guitar-chords/
Thanks!
Interesting!
It’s not possible out-of-the-box but you could do it with an additional custom script in your HTML/theme. Would this work for you?
For example:
Installation
1) Install the plugin.
2) In plugin settings, uncheck “Auto-adjust animation speed” and set “Scroll animation easing” to linear.
3) Insert the following script at the end of your HTML document just before the closing body tag (e.g. in footer.php after
wp_footer()
(it should appear after ‘Page scroll to id’ plugin scripts):<script> (function($){ $(window).load(function(){ var ps2idData=$(document).data("mPS2id"),origScrollSpeed=ps2idData.scrollSpeed; $("a[data-ps2id-speed]").click(function(e){ e.preventDefault(); var $this=$(this), val=$this.attr("href"), pct=Math.round(100*($(val).offset().top-$(window).scrollTop())/$(val).offset().top), speed=$this.attr("data-ps2id-speed"), scrollable=$("html,body"); if(!scrollable.is(":animated")){ ps2idData.scrollSpeed=(pct/100)*speed || origScrollSpeed; $.mPageScroll2id("scrollTo",val); }else{ scrollable.stop(); } }); }); })(jQuery); <script>
Usage
4) Edit your auto-scroll links and add the attribute
data-ps2id-speed
with the speed you want for each link (speed value in milliseconds), e.g.:<!-- 6 seconds auto-scroll duration --> <a href="#some-id" data-ps2id-speed="6000">Start/Stop</a>
5) At the end of the chords sheet add the target element (manually or via plugin’s shortcodes), e.g.:
<div id="some-id"></div>
Hope this helps
I hope it helps too! I can’t do it myself, but I will have my ‘go to’ guy try it to get it implemented as soon as he has time to. Thank you so much! I’ll let you know if it works 🙂
Please take a look at my implementation of your code.
http://test.reinharts.com
I am getting different results on mobile and desktop and cannot figure out which offset settings to use.
I have tried integers and the classes for both menus (.fixed-menu, .mobile-justify).
It works pretty well desktop, but doesn’t stop correctly on mobile.
Thanks for your hard work on this plug-in!
The mobile menu links seem to be handled by another script (they have an additional js click event attached). Maybe it’s an internal script by the theme or some other plugin(?) that overwrites ‘Page scroll to id’ functionality.
You can see the difference between desktop and mobile by noticing 2 things happening on mobile menu:
a) Lack of animation in page scrolling (page just jumps to position).
b) How the address bar URL changes when clicking the mobile menu links (this doesn’t happen on desktop mode as the links are handled by ‘Page scroll to id’).
I’m not sure if there’s some setting in your theme to disable this… If you can’t find anything you can always disable ‘Page scroll to id’ below a specific screen-size (see “Disable plugin below” in plugin settings).
Other notes:
In order to enable links highlighting, you need to change the links URL to the full address, e.g. from:
/#section-1
to:
http://test.reinharts.com/#section-1
Thank you for your prompt reply. I appreciate your help.
Hey there! I’m using Page Scroll 2 ID for a client’s site and the offset just isn’t working at all.
I tested with positive numbers, negative numbers, with “px”…without “px”…even the hash tag (id) for the sticky menu from within your plugin settings. It just doesn’t seem to be working. I even tried coding the offset directly into the HTML on the page in question. Additionally, I’m having the same issue on two different client’s sites (using different themes) at this point…so I’m not sure what’s wrong?
I tried using the short codes, but they weren’t working, so I just made links and div targets and coded it that way.
Any recommendations?
SITE ISSUE PAGE: pamthielastrology.com/claytonthiel/gallery/
Here is the code being used:
<div align="center"><a href="#platesWallHangings" rel="m_PageScroll2id" data-ps2id-offset="150">Plates & Wall Hangings</a> | <a href="#bigHeads" rel="m_PageScroll2id" data-ps2id-offset="150">Big Heads</a> | <a href="#shamanicFigures" rel="m_PageScroll2id" data-ps2id-offset="150px">Shamanic Figures</a> | <a href="#stoneSculptures" rel="m_PageScroll2id" data-ps2id-offset="150">Stone Sculptures</a></div>
Thanks for any help you can offer!
Hello,
You links seem to be handled by some other script or plugin.
When you click any of the links you can see its hash appended to browser’s address bar. This is not the behavior of “Page scroll to id”. I inspected all links and they have a second js click event attached (in addition to the one added by “Page scroll to id”).
You have to find which script handles your links. Maybe it’s a theme script or some other plugin(?)
hi malihu,
i like your plugin and its working very well on my desktop but unfortunately not on my mobile device…. i think/know the problem is my wp-theme! i tried to fix the issue with “Activating plugin on links without rel attribute” but still no help…
i hope you may help me. Link
brg
nikita
Hello,
The issue is indeed within your theme but the rel attribute is not the problem as I see it on the links when inspecting the page (and in fact, the plugin does handle the links as it should).
The problem is that the mobile menu links parent element (li) have some js click event binded which prevents the other events on the links themselves from working.
I can’t really say where, how or why this event is added (all .js files are minified for production)… Maybe it’s another plugin or a theme script(?)
Is there’s some setting for this in your theme?
Hello Malihu,
thank you for the very fast replay! 🙂
I also recognized that if the menu is opened on mobile, the page is no longer scrollable. The js. is minified by an cache plugin – i will disable it so you can have a look if you have time.
thank you
I am having quite a time trying to get this to work. Could anybody help with just one link I can use as an example for the others?
Thanks in advance
I really like the plug-in – but i can only manage it to define one link with it 🙁
What i did:
I added this in my site [ps2id id=’ref’/]
in the menue is added #ref (URL-Field) and m_PageScroll2id (XFN-field)
The link works perfekt.
Then I added an other traget named “lei” on my site [ps2id id=’lei’/]
in the menue is added #lei (URL-Field) and m_PageScroll2id (XFN-field)
What i’m doing wrong?
I can’t really say… nothing sounds wrong. What happens when you click the link? Does it go to the anchor point without scrolling animation or it does nothing? Maybe there’s some typo in XFN-field (e.g. an extra space)?
I have a button in my page and I want the page to id plugin to work on it when clicked…I don’t know how to add it to selector(s) field since the button doesn’t have rel attribute.
This is what I see when I inspect the button:
<a href="http://greenstinct.com/#feature-2-4-1-1">N U T R I C I Ó N</a>
I have tried this on the selector’s field but doesn’t work…
a[rel=’m_PageScroll2id’], .maxbutton-7.maxbutton-nutricion.maxbutton a
Help 🙁
Can you re-post the markup you see when inspecting the button (along with its parent element) by including the HTML in code tags (see info inside and below “Comment” field) so it doesn’t get stripped from the comment?
Yes! Sorry…
<a class="maxbutton-7 maxbutton-nutricion maxbutton" href="http://greenstinct.com/#feature-2-4-1-1"> <span class="mb-text">N U T R I C I Ó N</span> </a>
ok, since the classes are applied on the anchor element you could insert the following to “Selector(s)” field:
a[rel='m_PageScroll2id'], a.maxbutton-7.maxbutton-nutricion.maxbutton
The above will apply to this specific button only (
maxbutton-7
)I don’t know if you want to have other buttons do the same but it would be better to change the selector a bit to match the more general class
maxbutton
along with an href value including a hash (#):a[rel='m_PageScroll2id'], a.maxbutton[href*='#']
This means that the plugin will apply (in addition to the default selector) to anchor elements (a) with class
maxbutton
that also have a hash (#) somewhere within their href value.It worked. Thank you so much!
There’s another thing I can’t get to work…as you can see I’m new to this.
I want to highlight the links with the mPS2id-highlight class but don’t know what to add in the style.css. This is the inspect element of a main menu link:
<li id="menu-item-4111" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-home menu-item-4111"><a rel="m_PageScroll2id" href="http://greenstinct.com/#feature-2-1-0-1" class="_mPS2id-h mPS2id-highlight">Proyecto</a></li>
I checked your link (greenstinct.com) and firstly you need to remove the
#main-nav
value from the “Highlight selector(s)” field in plugin settings or change it to:#main-nav .menu-item a
(I assume you added this value for testing).You can then add the
mPS2id-highlight
class in your theme’s CSS and style the highlighted menu links the way you want.You can normally edit your theme’s stylesheet within WordPress administration via “Appearance > Editor > Stylesheet”. In style.css you can simply add the class with the style you want.
For example:
.mPS2id-highlight{ color: #00e6b4; }
Hope this helps
I followed your instructions but didn’t work (added the exact code in style.css).
When the section is visible, I can see the mPS2id-highlight class automatically added to the link (when I inspect the element), but its color doesn’t change…any idea?
Ah yes, you probably need a more specific selector to overwrite the other rules applied on the links. Try adding:
#main-nav .menu-item > a.mPS2id-highlight{ color: #00e6b4; }
I worked!!! Thank you for your help 🙂
Hello,
Great plugin.
from some reasons its working for only the first two links in the top menu in this page:
http://ecpm.co.il/agency/
the other links goes to the second link (אודות) you have any idea why
Thanks
Hello,
The problem
Your sections like the .home-intro, .about-us etc. are floated left. This means that you have to clear them (in CSS) in order for their parent element/container to have a proper height (if you don’t clear them its height is zero) – info.
In your case, your sections parents are the actual target elements (#sctn-hintro, #sctn-au etc.) and because their floated children are not cleared, they get zero height thus, not properly positioned within the vertical axis of your document (which results in “wrong” scrolling position when links are clicked).
The solution
You can clear any floated element easily by setting its container overflow to hidden.
So in your case, just add the following to your CSS:
#sctn-hintro, #sctn-au, #sctn-srvos, #sctn-foifoi, #sctn-porflo, #sctn-clnt{ overflow: hidden; }
This will also fix the page’s horizontal scrollbar and possibly other layout issues 😉
mPS2id-highlight how to configure
What exactly you need?
am configured fully page scroll to id but
menu high lite how to configure
You just add the
mPS2id-highlight
class with the rules you want to your CSS, e.g..mPS2id-highlight{ color: red; }
More info in Links highlighting section.
Hi,
Not sure how active you are at the WordPress Support page so I thought I could post here too.
Sorry but I’d to like to get some help while the site is up and running and I can’t activate Maintenance Mode since then you won’t be able to locate the problem.
Anyway, the problem is that the floating menu doesn’t work. The menu doesn’t show up at all.
<a href="#section1" rel="nofollow">section1</a> <a href="#section2" rel="nofollow">section2</a> <a href="#section3" rel="nofollow">section3</a>
Here’s the page where I’m testing at, and used the manual approach.
http://www.mixningskonsulten.com/intro-4
I tried without the ul / li stuff before, as the post at WordPress indicates.
At this page I also tried with the shordcodes instead:
http://www.mixningskonsulten.com/intro-6
[ps2id url='#section1']section1[/ps2id] [ps2id url='#section2']section2[/ps2id] [ps2id url='#section3']section3[/ps2id]
But same problem on both: the links only appear as ordinary links on the page, no floating menu as the demo-pages demonstrated.
The plug-in seems to work otherwise.
What I forgot to mention before was that I think the classname of the menu is “art-nav”, but I’m not sure how relevant this is.
Best regards,
edbergswe
I’m very active 🙂
See reply: https://wordpress.org/support/topic/floating-menu-not-showing?replies=2#post-7674000
Hello,
I have created 6 menue links (under blagovne znamke) and 6 target sections. But only 1 section (SKIP HOP) has smooth and nice scrolling , all other 5 sections it just jumps with no nice transitions. Also the offset value is only appliend to “SKIP HOP” section not for others. What could be the problem?
Thanks, MArtin
Hi,
The plugin is applied only on the “SKIP HOP” link because of a typo in your other links. It seems you have an extra space character in the rel attribute:
rel="m_PageScroll2id "
Change them to:
rel="m_PageScroll2id"
and everything will work 😉
Uau, thanks for your quick reply. And of course thanks for all your effort.
Bu to be honest, I have no idea where can I find that link to correct it. I haven’t copied it anywhere. I just copied m_PageScroll2id in menu settings and
Section 1 content…
for the sections… that is all I have used. Could you please enlighten me in which file I can find that links to correct them. Thanks for everything, Martin
On the same place (menu settings?) you copied m_PageScroll2id value.
Normally, you created the menu links in “Appearance > Menus”, correct?
Just edit the XFN field of the links (where you pasted m_PageScroll2id) and remove the space at the end.
OMG, thanks I wass looking the code, where to paste the whole rel=”m_PageScroll2id” thing, did not notice space in menu sett. Thanks a lot, it works!
First of all, thanks for the great plugin, it was exactly what I had been looking for. Recently, I tried to use the code in the menu using the (xfn) field but I keep getting
<a rel="relm_PageScroll2id" href="#ourstory">Our Story</a>
in the resulting html. Not sure why it’s adding in an extra rel within the quotes. Any help would be great. Thxalso here is the website in which this is happening. storysitez.com
I cannot see ‘Page scroll to id’ plugin installed in your page/theme. Is it activated?
Do you enter
m_PageScroll2id
in the xfn field? I’ve never encountered such issue…yes. you can view the issue here at http://storysitez.com
You might have copied the entire rel=”m_PageScroll2id” line into the XNF field, when you should actually just copy m_PageScroll2id. Happened to me.
Iván answer is correct. Insert:
m_PageScroll2id
in XFN field (see screenshot in “Creating links in WordPress Menus” section)