Jump to content

Add an image to a scrolling block

Go to solution Solved by tuanphan,

Recommended Posts

Hey there, 

I would love to add a small custom icon to a scrolling block. There are some scrolling widgets with image capabilities (will Myers and Elsfsight) but those are really for whole carousels of images. 

I really love the look of the Squarespace scroll with words - and just want to inject a tiny favicon instead of an emoji. 

Any coding geniuses out there have a suggestion for how to make this possible? Thank you!

@tuanphan thought you might have an idea?

Link to comment
  • Solution
21 hours ago, FluffCreativeStudio said:

Thank you so much @tuanphan I knew you would have the wisdom, that is exactly what I am trying to acomplish! 

The website is https://legally-fun.squarespace.com password is "fun" 

And here is a link to the image: https://ibb.co/3W2tWW6

Scrolling block is in the footer

#1. First, add text to Scrolling Block (you can add any text, because we will use text to change this text then).

image.png.a9b2b93bebcbc17cf38bababad111ac3.png

#2. Use this code to Page Header Code Injection (Page where you use Scrolling Block)

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.0/jquery.min.js"></script>
<style>
.m-scroll {
  display: flex;
  position: relative;
  width: 100%;
  height: 90px;
  margin: auto;
  overflow: hidden;
  z-index: 1;

   
}
 .m-scroll__title {
      display: flex;
      position: absolute;
      top: 0;
      left: 0;
      align-items: center;
      justify-content: flex-start;
      width: 100%;
      height: 100%;
      white-space: nowrap;
      transition: all 0.7s ease;
        
  }
.m-scroll__title > div {
          display: flex;
          animation: scrollText 40s infinite linear;
        }
        .m-scroll__title img {
            margin: 0 20px 6px;
        }
   .m-scroll__title     h1 {
          margin: 0;
          font-size: 1.7rem;
          color: #000;
          transition: all 1.4s ease;
     display: flex;
        }
/*div:hover {
  animation-play-state: paused;
}*/
@keyframes scrollText {
  from   { transform: translateX(0%); }
  to { transform: translateX(-50%); }
}
</style>  
<script>
const words = ['WORK HARD PLAY HARD', 'WORK HARD PLAY HARD']
const imgUrl = 'https://i.ibb.co/TR6zRRj/Untitled-200-x-200-px.png';
$(document).ready(() => {
    const textBlock = $('.sqs-block.marquee-block.sqs-block-marquee');
    const htmlWords = `
    <div class="m-scroll">
  <div class="m-scroll__title">
    <div>
      <h1>
        ${words.map((w) => `${w}<img width="20px" src="${imgUrl}"/>`).join('')}
      </h1>
      <h1>
        ${words.map((w) => `${w}<img width="20px" src="${imgUrl}"/>`).join('')}
      </h1>
    </div>
  </div>
</div>
    `;
    $(htmlWords).insertAfter(textBlock);
    $(textBlock).remove();
})
</script>

image.thumb.png.11376aa61c490999df84b8637e4aee49.png

#3. Result

image.thumb.png.838a89939da3c8b75917ae8a928f58cc.png

#4. Explain a bit

Add text/image in this position. If you use 1 text only, you should repeat twice (same as code in screenshot).

image.png.42d741e691adc9cc4ee347b69a32a30b.png

if you use 3 different text, enter something like this

image.thumb.png.2dfb0a1222c608d39f21ebc84e187f65.png

this is Text color

image.png.716204c9271d8662fe3e480082d24c3d.png

to increase Image width, you can add this code before </style>

.m-scroll__title img {
    width: 50px;
}

to align text/image after you added image size code, use this code before </style>

.m-scroll__title h1 {
    align-items: center;
}

image.thumb.png.e869d49c0bcfe572c3188a771eca79ae.png

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

Contact Customer Care - Learn CSS - Buy me a coffee (thank you!)

Link to comment

@tuanphan you are a genius! Thanks so much for explaining your code. I was able to make a few adjustments and it is looking good except for one issue. 

 

It seems there is lag time before the infinite loop kicks in - so that the scroll has an empty tail for about half the page before it begins again. Do you have a suggestion for this? 

 

Thank you again! 

Link to comment
15 hours ago, FluffCreativeStudio said:

@tuanphan you are a genius! Thanks so much for explaining your code. I was able to make a few adjustments and it is looking good except for one issue. 

 

It seems there is lag time before the infinite loop kicks in - so that the scroll has an empty tail for about half the page before it begins again. Do you have a suggestion for this? 

 

Thank you again! 

You mean this space? it appears about 1 second then disappear image.png.fcc55b3bdad515ef9fdee9581ab7ff7b.png

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

Contact Customer Care - Learn CSS - Buy me a coffee (thank you!)

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.