Have tried the overflow method and it doesn’t kill the scroll on trackpads. Tried putting it in the body - end too.
However I found the solution! 
While trying other routes I ran into another issue, since we’re using tons of transparent videos with a widget for each slide we NEED “lazy loading” looks like flexboxes can’t do asynchronous loading by item since its seen as 1 item, so…after fiddling and tinkering I just threw out the entire idea of using any flexboxes or repeaters or templates and made a slide show from scratch that functions like a flexbox with the benefits of lazy loading like a repeater would.
Just set your items after 1 to “Hidden & Collapsed.” Create a container for each slide and stack them in the exact same place with 1 on top and the rest under.
Also if you have a ton of slides just set an array instead of naming them 1 by 1.
Take a look, the only 2 issues im seeing with this version is spam clicking the navigation buttons can sometimes make the animation look like its “stacking” rather than sliding, and items are sometimes slow to load - but working on testing with smaller AVIFs or another alpha channel format thats smaller than webm…not many options.
I combined this with a looping nav button tied to index listening and it works perfectly plus now I don’t need a clipping mask and can just use a css grid where I want the slides to appear.
Any ideas to help improve performance and get a lock check in to absolutely 100% sync the index to not update until the animation finishes? - could cause issues down the line!
$w.onReady(function () {
let slides = ['#slide1', '#slide2', '#slide3'];
let currentIndex = 0;
// Expand first slide
$w('#slide1').expand();
$w('#nextButton').onClick(() => {
let oldIndex = currentIndex;
let nextIndex = (currentIndex + 1) % slides.length;
// Expand next slide first
$w(slides[nextIndex]).expand();
setTimeout(() => {
$w(slides[oldIndex]).hide('slide', {direction: 'left', duration: 400})
.then(() => {
// Collapse the OLD slide after it's hidden
$w(slides[oldIndex]).collapse();
});
$w(slides[nextIndex]).show('slide', {direction: 'right', duration: 400});
}, 100);
currentIndex = nextIndex;
});
$w('#prevButton').onClick(() => {
let oldIndex = currentIndex;
let prevIndex = (currentIndex - 1 + slides.length) % slides.length;
// Expand prev slide first
$w(slides[prevIndex]).expand();
setTimeout(() => {
$w(slides[oldIndex]).hide('slide', {direction: 'right', duration: 400})
.then(() => {
// Collapse the OLD slide after it's hidden
$w(slides[oldIndex]).collapse();
});
$w(slides[prevIndex]).show('slide', {direction: 'left', duration: 400});
}, 100);
currentIndex = prevIndex;
});
});