Text Over A video Effect - Blend & Gsap

Hello

				
					make parent cotainer 100vh give it a class ".image-container"
child container with 100vh give it a class ".video-copy"
Add the following code to your page
				
			
				
					<style>
    
.video-copy{
    user-select: none;
    mix-blend-mode: multiply;
     
}

.image-container {
    position: relative;
    overflow: hidden;
  
}

.image-container video {
    position: absolute;
    bottom: 0;
    left: 0;
    height: 140%;
    width: 100%;
    object-fit: cover;
    object-position: center;
}
</style>

<script>
    
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.9.1/gsap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.9.1/ScrollTrigger.min.js"></script>


<script>
gsap.utils.toArray(".image-container").forEach(function(container) {
    let image = container.querySelector("video");
  
      gsap.to(image, {
        y: () => image.offsetHeight - container.offsetHeight,
        ease: "none",
        scrollTrigger: {
          trigger: container,
          scrub: true,
          pin: false,
        //   markers: true,
          invalidateOnRefresh: true
        },
      }); 
  });
    


</script>
</script>
				
			

Text Over A video Effect - Blend & Gsap

Hello

				
					make parent cotainer 100vh give it a class ".image-container"
child container with 100vh give it a class ".video-copy"
Add the following code to your page
				
			
				
					<style>
    
.video-copy{
    user-select: none;
    mix-blend-mode: multiply;
     
}

.image-container {
    position: relative;
    overflow: hidden;
  
}

.image-container video {
    position: absolute;
    bottom: 0;
    left: 0;
    height: 140%;
    width: 100%;
    object-fit: cover;
    object-position: center;
}
</style>

<script>
    
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.9.1/gsap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.9.1/ScrollTrigger.min.js"></script>


<script>
gsap.utils.toArray(".image-container").forEach(function(container) {
    let image = container.querySelector("video");
  
      gsap.to(image, {
        y: () => image.offsetHeight - container.offsetHeight,
        ease: "none",
        scrollTrigger: {
          trigger: container,
          scrub: true,
          pin: false,
        //   markers: true,
          invalidateOnRefresh: true
        },
      }); 
  });
    


</script>
</script>
				
			

Text Over A video Effect - Blend & Gsap

Hello

				
					make parent cotainer 100vh give it a class ".image-container"
child container with 100vh give it a class ".video-copy"
Add the following code to your page
				
			
				
					<style>
    
.video-copy{
    user-select: none;
    mix-blend-mode: multiply;
     
}

.image-container {
    position: relative;
    overflow: hidden;
  
}

.image-container video {
    position: absolute;
    bottom: 0;
    left: 0;
    height: 140%;
    width: 100%;
    object-fit: cover;
    object-position: center;
}
</style>

<script>
    
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.9.1/gsap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.9.1/ScrollTrigger.min.js"></script>


<script>
gsap.utils.toArray(".image-container").forEach(function(container) {
    let image = container.querySelector("video");
  
      gsap.to(image, {
        y: () => image.offsetHeight - container.offsetHeight,
        ease: "none",
        scrollTrigger: {
          trigger: container,
          scrub: true,
          pin: false,
        //   markers: true,
          invalidateOnRefresh: true
        },
      }); 
  });
    


</script>
</script>