Code

Particles.js

Add Particles.js to your Webflow site with this simple CSS and JS code snippet.

Particles.js preview

Add Particles.js to your Webflow site with this simple CSS and JS code snippet.

How to add it

  1. Add the CSS via an HTML embed or to the head section of your page settings
  2. Add the JS to the closing body section of your pages custom code settings

The code

Javascript
                      <!-- Add to body closing section -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.8.0/gsap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.8.0/ScrollTrigger.min.js"></script>
<script>
// © Code by T.RICKS, https://www.timothyricks.com/
// Copyright 2021, T.RICKS, All rights reserved.
// You have the license to use this code in your projects but not to redistribute it to others
gsap.registerPlugin(ScrollTrigger);
let horizontalItem = $(".horizontal-item");
let horizontalSection = $(".horizontal-section");
let moveDistance;
function calculateScroll() {
  // Desktop
  let itemsInView = 3;
  let scrollSpeed = 1.2;

  if (window.matchMedia("(max-width: 479px)").matches) {
    // Mobile Portrait
    itemsInView = 1;
    scrollSpeed = 1.2;
  } else if (window.matchMedia("(max-width: 767px)").matches) {
    // Mobile Landscape
    itemsInView = 1;
    scrollSpeed = 1.2;
  } else if (window.matchMedia("(max-width: 991px)").matches) {
    // Tablet
    itemsInView = 2;
    scrollSpeed = 1.2;
  }
  let moveAmount = horizontalItem.length - itemsInView;
  let minHeight =
    scrollSpeed * horizontalItem.outerWidth() * horizontalItem.length;
  if (moveAmount <= 0) {
    moveAmount = 0;
    minHeight = 0;
    // horizontalSection.css('height', '100vh');
  } else {
    horizontalSection.css("height", "200vh");
  }
  moveDistance = horizontalItem.outerWidth() * moveAmount;
  horizontalSection.css("min-height", minHeight + "px");
}
calculateScroll();
window.onresize = function () {
  calculateScroll();
};

let tl = gsap.timeline({
  scrollTrigger: {
    trigger: ".horizontal-trigger",
    // trigger element - viewport
    start: "top top",
    end: "bottom top",
    invalidateOnRefresh: true,
    scrub: 1
  }
});
tl.to(".horizontal-section .list", {
  x: () => -moveDistance,
  duration: 1
});
</script>

                    
CSS
                      <!-- Add to head section -->
<style>
.particles-js-canvas-el {
position: absolute;
max-width: 100%;
max-height:100%;
left: 0%;
top: 0%;
right: 0%;
bottom: 0%;
z-index: 0;
}</style>

                    

Browse similar code snippets

Categories

More from Timothy Ricks

Profile →

Similar code snippets

All code snippets →