πŸ“š New Community Library Items


​

​

We launched the Community Library this week. Let's highlight some of the useful resources.

πŸ–¨οΈ Copy to Clipboard

Copy text to clipboard on button click with visual feedback.

​https://slater.app/community_library/copy-to-clibboard-41c30ebc-180e-4e9d-b747-f427f1f05151​

​

β€‹πŸ‘» Reveal Words on Scroll

Animate text on scroll with GSAP, ScrollTrigger, and SplitType.​

​https://slater.app/community_library/text-by-words-with-scroll-b0810bf3-64b6-40a4-b5ad-46c784fdcc76​

​

πŸ›€ Remove https:// From Text Link

Remove protocols from anchor texts using jQuery.

​https://slater.app/community_library/remove-https-from-text-link-7a8c89db-0803-4f41-948b-db08a2778c7c​

​

Not what you are looking for? Go check out the full Community Library.

Do you have useful scripts that the Webflow community could use? Let us know and we'll get them added.

​

Javascript 101: The Scroll Event

This week, we’ve been creating experiences that use the scroll event, so we thought we’d discuss it today. Leveraging the scroll event can be extremely useful. (It can also be extremely frustrating.)

The scroll event in JavaScript allows you to execute code when a user scrolls an element or the entire window. This can be used to trigger animations, load content dynamically, or show/hide elements.

Let’s create a simple script that shows an element when it scrolls into view and hides it when it leaves the viewport.

Here is an html element with the ID we will use.

<div id="scroll-element">Hello, I am here!</div>

Here is the Javascript.

const scrollElement = document.getElementById('scroll-element');

function isElementInViewport(el) {
    const rect = el.getBoundingClientRect();
    console.log("scroll triggered", rect.top)
    return (
        rect.top >= 0 &&
        rect.left >= 0 &&
        rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
        rect.right <= (window.innerWidth || document.documentElement.clientWidth)
    );
}

function checkVisibility() {
    if (isElementInViewport(scrollElement)) {
        scrollElement.style.opacity = 1;
    } else {
        scrollElement.style.opacity = 0;
    }
}


window.addEventListener('scroll', checkVisibility);
checkVisibility(); // Check visibility on initial load

Let’s break down what we’re doing here.

  • isElementInViewport function checks if the element is in the viewport using getBoundingClientRect.
  • checkVisibility function sets the opacity of the element based on whether it is in the viewport or not.
  • scroll event listener calls checkVisibility every time the user scrolls.
  • Initial call to checkVisibility ensures the correct state when the page loads.

Add this code to a project to see how often the scroll event is triggered. The console.log will give you an idea :). The event is triggered frequently, which can make debugging issues a challenge.

GSAP and Webflow interactions are the more common approaches to handle these type of expereinces but understanding the scroll event is a very useful skill and something you will use often.

​

Your projects, supported by Slater

We have been working on a new Podcast site today, which made me think about Crucible Moments, a podcast site we built for Sequoia Capital.

​https://www.cruciblemoments.com/​

​
​

​

Happy coding!

πŸ€™ the Slater Team

​

If Slater helps you create better websites, please support the team behind it.

Welcome To Slater!

Slater resources, updates and community activity

Read more from Welcome To Slater!
video

You may recall that the original Slater had access controls for projects and files. We didn't want just anyone going in there and rewriting our Javascript. However, managing access for teammates became cumbersome (I even added a "god mode" to give myself access to any project or file). Since we generally trusted each other and never had issues, we decided to leave it out of the latest version of Slater. That said, we understand that some teams work differently, and maintaining control can be...

video

We're going to take a brief break from the regular newsletter format to celebrate the release of ask.edgarallan.com. Today, let's hear from Mason Poe, the Founder of Edgar Allan and Slater. I'm thrilled to announce the launch of ask.edgarallan.com and the start of a new conversation. We can all feel it: the web is changing in ways that seem both dramatic and, in a weird way, imperceptible. At times, it’s hard to know where to start exploring what could be next. Sometimes, when you think...

Our new Edgar Allan website, which we're launching next week 🀫, uses over 3,000 lines of code. It’s a bit unwieldy! To better support the new EA website and similar JavaScript-heavy projects, we’ve added slater_import. This feature allows you to write a function once and then reuse it across all the files in your project. You can see how to use it here. ⬇️ Not ready to watch the video? No problem. To import a file, simply start typing the name of the file you want to import and click on the...