Anchor Link Scroll Effect Using a Hubspot CTA

SOLVE
Highlighted
Top Contributor

Hi, Im trying to add a link to a cta button so that when clicked the page scrolls. Unfortunatly in the cta edit I need to add a valid URL protocol to the link field. I can only add the whole url which forces the page to reload to the anchor point rather than allowing me to just add #anchorname into the link field.

Is there any way that I can use hubspot cta buttons to call a #anchorname only?

2 Accepted solutions

Accepted Solutions
Highlighted
Solution
Regular Advisor

Is there a reason your trying to use a CTA for this  vs a regular HTML anchor tag? CTA's are used to track views, clicks and submissions for converstion analytics. I don't see a whole lot of value using a CTA over a standard HTML anchor link for in-page navigation.

View solution in original post

Highlighted
Solution
New Member

I've been able to hack this. It's not the prettiest jump-down (the page reloads quickly but starts at the anchor), but it does work. My landing page was unlikely to get organic traffic during a few minutes when I published it while unfinished, so if that's a concern for you, this may not be a solution for you.

 

Here's what I did for my landing page:

  1. Create the anchor at the point down the page.
  2. Add a CTA at the top, with the URL facing any random page.
  3. Publish the page.
  4. Take the published page URL and add ?#[anchor] to the end of it. Copy that text.
  5. Edit the CTA in Hubspot so that it points to [URL]?#[anchor]. You will have to select "External page" in order to paste the URL in.
  6. Refresh the page to test it. When you click the CTA you will see the page load again really quickly but it will jump down to the anchor.

View solution in original post

20 Replies 20
Highlighted
Solution
Regular Advisor

Is there a reason your trying to use a CTA for this  vs a regular HTML anchor tag? CTA's are used to track views, clicks and submissions for converstion analytics. I don't see a whole lot of value using a CTA over a standard HTML anchor link for in-page navigation.

View solution in original post

Highlighted
HubSpot Employee

@ndwilliams3 I would completely agree! Unless you had a specific reason for doing so, I wouldn't think that a page navigation would need to be built with CTAs. @Woodsy I don't believe that you can use relative URLs in the CTA tool but you can follow along with the instructions in this Academy article (https://knowledge.hubspot.com/articles/kcs_article/cta/can-i-use-an-anchor-id-in-the-url-link-of-a-h...) to add an anchor ID to the end of an absolute URL. 

Highlighted
Occasional Contributor

What about the case of a single page application or a long single-page site with scrolling navigation? It also seems that it's not possible to handle the click of a CTA with a script in a way that allows the tracking functionality to be passed. It's severely limiting that CTA buttons can only be used to navigate to a different page. It is possible to use the hash navigation, but then you are still reloading the page and have the odd "jump" effect. Having the ability to send the tracking via a script API and handle the click, or at least the ability to use a relative URL would be incredibly useful in terms of flexibility.

Highlighted
Regular Contributor

I'm using a CTA button (from image file) as opposed to a link. So yes, there is still a reason to find another solution for this issue.

Reply
0 Upvotes
Highlighted
Occasional Contributor

Hi,

 

I am trying to do this and there's a couple of reasons I need to use CTAs:

- Some of my modules have CTA blocks, so you can only select CTAs

- All my action buttons originate in CTA module, so if I need to replicate this as a regular link in order to use anchor, I need to style it identically I can't see a way to copy the styling from the CTA.

 

In this particular instance I want 2 CTAs side by side, 1 with a jump link and 1 with a link to a PDF, so they need to look and behave identically.

 

BTW I am not a coder/developer, hence trying to use Hubspot tools as much as possible.

 

Thanks

 

Alex

Reply
0 Upvotes
Highlighted
Occasional Contributor

This would be an awesome addition.

 

We just launched a landing page with a form at the very bottom, so we used CTAs throughout the page to bring people down to the form instead of linking to a completely new page.

 

Some of you asked why you'd do this? Well, here were a few of our motivators:

  • Saves on load time. They've already loaded the page they need to be on.
  • Track CTA performance. We can see what section triggered someone to click.
  • Run tests. Based on a combination of CTA, section order, copy, imagery, and audience — we can optimize each for the best conversions.

With the current implementation of CTA's anchor URL behavior and limitations, it creates a rough user experience as the page reloads, the screen flashes, and then they're teleported down to the form.

Highlighted
Regular Contributor

@ringo-at-wt Well said and so true! Hubspot please consider implementing current page Anchor CTAs! Heart

Highlighted
Occasional Contributor

Yes, I agree fully with this too.  This would also be particularly useful for using CTA's to drive popup modals identified through anchor IDs or CSS IDs.

 

Capture.PNG

 

@hubspot, can we make this happen?

Highlighted
Occasional Contributor | Gold Partner

This is something that has come up on several of my projects. I would love this addition to the toolset.

Highlighted
Occasional Contributor

100% agree, I would love to use CTAs for all of the reasons @ringo-at-wt mentioned as well, right now the experience you've described is what we are using and it's suboptimal. Would be great if HubSpot could implement this!

Highlighted
Regular Contributor

I totally agree! Please can someone provide a solution for this?

I want to use an Image CTA (button), so the anchor text solution is no option. At the moment I am using id="page-part" and linking the CTA to our url#page-part but this causes the page to reload, which is slower than scrolling, so unwelcome.

 

Thank you

Highlighted
Occasional Contributor

Does anyone have an update on this?

Highlighted
Occasional Contributor

Just chipping in that I'm having this exact issue as well and found this thread through a search on using same page CTA.

 

In the mean time I will use a link in a rich text field using the HTML - to add the button style.

Which looks like this -> 

<div style="text-align: center;">
<a href="/built-for/agencies#cta-link" class="smoothscroll btn btn-outline" rel=" noopener">Get in touch</a>
</div>

@hubspot -> Would be nice to have this as an option in the "official" CTA's components.,

 

Reply
0 Upvotes
Highlighted
Occasional Contributor

Actually Hubspot overrules the href in a rich text so the above is broken as well...

 

Stumped.

Reply
0 Upvotes
Highlighted
Occasional Contributor

A temporary solution (maybe): 

 

1) after you added your anchor link, use the following for the button <a href="#scrollUp" ..., or whatever name you assigned to the anchor link in your HTML.

 

2) in the page's advanced settings add the following jQuery code:

 

<script>
$(document).ready(function(){
$('a[href^="#"]').on('click',function (e) {
e.preventDefault();

var target = this.hash,
$target = $(target);

$('html, body').stop().animate({
'scrollTop': $target.offset().top
}, 900, function () {
window.location.hash = target;
});
});
});
</script>

 

Note: you can change '900' to a value that suits you best for the scrolling speed (the value is written in milliseconds, so that's 0.9s)

Highlighted
New Contributor

Has anyone used this script? DOes it work? I can't get it to work. 

Reply
0 Upvotes
Highlighted
New Contributor

Can you please paste a link to the page where you tried it? I might be able to provide some help if needed.

Reply
0 Upvotes
Regular Visitor

Does anyone found a solution for this? I'm totally agree with ringo-at-wt 

Reply
0 Upvotes
Highlighted
Regular Advisor

I don't think this is achievable with a CTA. The CTA 'click' is registered via a redirect. Since a hash doesn't trigger a page load, there's no way to register the click. if you're on Enterprise edition, you could use the Events API to achieve similar tracking on traditional anchor links.

 

This is going to require Hubspot to 1) add a hash method to CTA's or 2) add an API endpoint for CTA's similar to the Events API.

Reply
0 Upvotes
Highlighted
Solution
New Member

I've been able to hack this. It's not the prettiest jump-down (the page reloads quickly but starts at the anchor), but it does work. My landing page was unlikely to get organic traffic during a few minutes when I published it while unfinished, so if that's a concern for you, this may not be a solution for you.

 

Here's what I did for my landing page:

  1. Create the anchor at the point down the page.
  2. Add a CTA at the top, with the URL facing any random page.
  3. Publish the page.
  4. Take the published page URL and add ?#[anchor] to the end of it. Copy that text.
  5. Edit the CTA in Hubspot so that it points to [URL]?#[anchor]. You will have to select "External page" in order to paste the URL in.
  6. Refresh the page to test it. When you click the CTA you will see the page load again really quickly but it will jump down to the anchor.

View solution in original post