
β‘ Auto-Move Only (paste after native carousel):
<style>
/* Hide duplicate controls if any */
.auto-carousel-controls {
display: none !important;
}
</style>
<script>
document.addEventListener("DOMContentLoaded", function() {
// Find the carousel slider UI
const carousel = document.querySelector('.carousel-slider-ui, [class*="carousel"] [class*="slider"]');
// Settings - change these as needed
const SECONDS_PER_SLIDE = 4; // Duration each slide is shown
const PAUSE_ON_HOVER = true; // Pause on hover
// Get slide width
const firstSlide = carousel.querySelector('div > div');
const slideWidth = firstSlide?.offsetWidth || carousel.clientWidth;
let currentIndex = 0;
let isUserHovering = false;
let autoScrollActive = true;
let timeoutId;
function nextSlide() {
if (isUserHovering || !autoScrollActive) return;
currentIndex = (currentIndex + 1) % Math.floor(carousel.scrollWidth / slideWidth);
const targetPosition = currentIndex * slideWidth;
carousel.scrollTo({
left: targetPosition,
behavior: 'smooth'
});
// Schedule next slide
timeoutId = setTimeout(nextSlide, SECONDS_PER_SLIDE * 1000);
}
// Initialize
carousel.scrollLeft = 0;
// Start when carousel is visible
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
autoScrollActive = true;
timeoutId = setTimeout(nextSlide, SECONDS_PER_SLIDE * 1000);
} else {
autoScrollActive = false;
clearTimeout(timeoutId);
}
});
});
observer.observe(carousel);
// Pause on hover
if (PAUSE_ON_HOVER) {
carousel.addEventListener('mouseenter', () => {
isUserHovering = true;
clearTimeout(timeoutId);
});
carousel.addEventListener('mouseleave', () => {
isUserHovering = false;
if (autoScrollActive) {
timeoutId = setTimeout(nextSlide, SECONDS_PER_SLIDE * 1000);
}
});
}
// Prevent wheel from scrolling page
carousel.addEventListener('wheel', (event) => {
event.preventDefault();
}, { passive: false });
});
</script>
<!-- Instructions: Paste this AFTER your native Systeme.io carousel in a Raw HTML block -->
Paste this AFTER your native Systeme.io carousel in a Raw HTML block.
The Hustle Nation is your #1 community to find passive income ideas for introverts, side hustle ideas, online side jobs. Join part-time hustlers on the path to financial freedom with proven strategies, tools, and inspiration to benefit from your free time. Learn newest tricks to earn money on the internet without showing your face on a camera. All our posts are not financial advise. Always do Your Own Research for informed decision.
β‘ Auto-Move Only (paste after native carousel):
<style>
/* Hide duplicate controls if any */
.auto-carousel-controls {
display: none !important;
}
</style>
<script>
document.addEventListener("DOMContentLoaded", function() {
// Find the carousel slider UI
const carousel = document.querySelector('[id^="carousel-"] .carousel-slider-ui');
if (!carousel) return;
// Settings - change these as needed
const SECONDS_PER_SLIDE = 4; // Duration each slide is shown
const PAUSE_ON_HOVER = true; // Pause on hover
// Get slide width
const firstSlide = carousel.querySelector('div > div');
const slideWidth = firstSlide?.offsetWidth || carousel.clientWidth;
let currentIndex = 0;
let isUserHovering = false;
let autoScrollActive = true;
let timeoutId;
function nextSlide() {
if (isUserHovering || !autoScrollActive) return;
currentIndex = (currentIndex + 1) % Math.floor(carousel.scrollWidth / slideWidth);
const targetPosition = currentIndex * slideWidth;
carousel.scrollTo({
left: targetPosition,
behavior: 'smooth'
});
// Schedule next slide
timeoutId = setTimeout(nextSlide, SECONDS_PER_SLIDE * 1000);
}
// Initialize
carousel.scrollLeft = 0;
// Start when carousel is visible
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
autoScrollActive = true;
timeoutId = setTimeout(nextSlide, SECONDS_PER_SLIDE * 1000);
} else {
autoScrollActive = false;
clearTimeout(timeoutId);
}
});
});
observer.observe(carousel);
// Pause on hover
if (PAUSE_ON_HOVER) {
carousel.addEventListener('mouseenter', () => {
isUserHovering = true;
clearTimeout(timeoutId);
});
carousel.addEventListener('mouseleave', () => {
isUserHovering = false;
if (autoScrollActive) {
timeoutId = setTimeout(nextSlide, SECONDS_PER_SLIDE * 1000);
}
});
}
// Prevent wheel from scrolling page
carousel.addEventListener('wheel', (event) => {
event.preventDefault();
}, { passive: false });
});
</script>
<!-- Instructions: Paste this AFTER your native Systeme.io carousel in a Raw HTML block -->
Paste this AFTER your native Systeme.io carousel in a Raw HTML block.



