Jump to content

Display different announcement bar message on only one page

Recommended Posts

On 3/18/2021 at 4:46 PM, Andyjk said:

Site URL: https://www.andykerrphotography.com

Does anyone know how to display a different announcement bar message on a single page, so that it's a different message than the one at the top of all other pages please?

Many thanks in advance.

Hi. You mean Plan your...text? or both Plan... + learn more link?

Also do you use Business or Commerce Plan?

Email me if you have need any help (free, of course.). Answer within 24 hours. 
Or send to forum message

How to: Setup Password & Share url Insert Custom CSS - Page Header - Upload Custom Font - Upload File - Find Block ID - Contact Customer Care

Link to comment

Add the following to Page Settings > Advanced > Page Header Code Injection for the page where you want to have a different announcement bar.

<!--

  begin change announcement bar for page
  
  SS Version : 7.0
  Template   : Brine template family
  
  -->
  
  <style>
  
    body:not( .sqs-edit-mode ) .Main-content .sqs-block-horizontalrule:nth-last-of-type( 2 ),
    body:not( .sqs-edit-mode ) .Main-content .sqs-block-html:nth-last-of-type( 1 )
    
      {
      
        display : none;
        
        }
        
    </style>
    
  <script>
  
    $( ( ) => {
    
      const url = 'https://www.squarespace.com/';
      
      // do not change anything below, there be the borg here
      
      if ( window.frameElement !== null ) return;
      
      if ( ! ( 'MutationObserver' in window ) ) return;
      
      const forceObserverDisconnect = setTimeout ( ( ) => {
      
        // disconnect when bar doesn't show up if user has closed it
        
        observer.disconnect ( );
        
        }, 1000 * 15 );
        
      let barUrl = ( $e ) => {
      
        if ( ! url ) return;
        
        let $barUrl = $( '.sqs-announcement-bar-url', $e );
        
        if ( $barUrl.length ) {
        
          $barUrl.attr ( 'href', url );
          
          } else {
          
            $( '<a>' )
            
              .addClass ( 'sqs-announcement-bar-url' )
              
              .attr ( 'href', url )
              
              .attr ( 'aria-labelledby', 'announcement-bar-text-inner-id' )
              
              .prependTo ( '.sqs-announcement-bar-content', $e );
              
            }
        }
        
      const observer = new MutationObserver ( function ( mutations ) {
      
        $.each ( mutations, function ( ) {
        
          if ( ! this.addedNodes.length ) return;
          
          let $e = $( this.addedNodes [ 0 ] );
          
          if ( ! $e.hasClass ( 'sqs-announcement-bar-custom-location' ) )
          
            return;
            
          let $content = $( '.Main-content .sqs-block-html:last ' +
          
            '.sqs-block-content p' );
            
          $( '#announcement-bar-text-inner-id p' ).replaceWith ( $content );
          
          barUrl ( $e );
          
          clearTimeout ( forceObserverDisconnect );
          
          observer.disconnect ( );
          
          } );
          
        } );
        
      // starts listening for changes in announcement bar drop zone
      
      observer.observe ( $( '.sqs-announcement-bar-dropzone' ) [ 0 ], {
      
        childList : true
        
        } );
        
      } );
      
    </script>
    
  <!-- end change announcement bar for page -->

At the bottom of the page add a line block and a text block.

1555225238_ScreenShot2021-03-22at2_21_47PM.png.759c71290be251991e7652d8e9549076.png

This is for v7.0 using Brine template family.

You won't see the effect while you are in Preview.  To see it use private browsing. Also note that the effect won't show if the user has closed their announcement bar.

Let us know how it goes.

Edited by creedon
version 2

Find my contributions useful? Please like, upvote, mark my answer as the best ( solution ), and see my profile. Thanks for your support! I am a Squarespace ( and other technological things ) consultant open for new projects.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

×
×
  • Create New...

Squarespace Webinars

Free online sessions where you’ll learn the basics and refine your Squarespace skills.

Hire a Designer

Stand out online with the help of an experienced designer or developer.