Eyeva Banner Carousel Widget¶
Description¶
The Eyeva Banner Carousel Widget displays a banner carousel for the Eyeva theme, using Blaze Slider with autoplay, navigation, and SVG icons features.
Page Builder Name: Banner Carousel | PapaThemes Eyeva
Version: 1.0.0
Features¶
- ✅ Blaze Slider carousel
- ✅ Multiple slides visible
- ✅ Autoplay with pause/play
- ✅ Navigation arrows
- ✅ Pagination dots
- ✅ SVG icon sprites
- ✅ Responsive breakpoints
How to Use¶
1. Add Widget¶
- Open Page Builder
- Drag Banner Carousel | PapaThemes Eyeva widget to the page
- Widget displays carousel banners
2. Configuration¶
| Option | Description | Default |
|---|---|---|
| Enable Pagination | Show dots | true |
| Enable Autoplay | Auto-advance | true |
| Autoplay Interval | Time (ms) | 5000 |
| Stop on Interaction | Stop on interaction | true |
| Transition Duration | Animation time | 800 |
| Slides to Show | Visible slides | 4 |
| Slide Gap | Space between slides | 32px |
Blaze Slider Configuration¶
Desktop Config¶
{
"all": {
"enablePagination": true,
"enableAutoplay": true,
"autoplayInterval": 5000,
"stopAutoplayOnInteraction": true,
"transitionDuration": 800,
"slidesToShow": 4,
"slidesToScroll": 4,
"slideGap": "32px"
}
}
Responsive Breakpoints¶
{
"(max-width: 800px)": {
"slidesToShow": 3,
"slidesToScroll": 3,
"slideGap": "16px"
},
"(max-width: 550px)": {
"slidesToShow": 2,
"slidesToScroll": 2,
"slideGap": "16px"
}
}
Carousel Structure¶
<div class="blaze-slider" data-config='...'>
<div class="blaze-container">
<div class="blaze-track-container">
<div class="blaze-track">
<div class="banner-slide">...</div>
<div class="banner-slide">...</div>
<!-- More slides -->
</div>
</div>
<button class="blaze-prev">Previous</button>
<button class="blaze-next">Next</button>
</div>
</div>
Pause/Play Feature¶
$el.find('.blaze-pause').on('click', (event) => {
event.preventDefault();
if (slider.config.enableAutoplay) {
slider.stopAutoplay();
$el.addClass('paused');
} else {
slider.startAutoplay();
$el.removeClass('paused');
}
});
UI States¶
- Playing: Normal icon
- Paused:
.pausedclass added
Navigation¶
Arrow Buttons¶
<button class="blaze-prev" aria-label="Previous">
<span class="icon">
<svg><use href="#icon-arrow-left"></use></svg>
</span>
</button>
Pagination Dots¶
- Auto-generated by Blaze Slider
- Click to navigate to slide
- Active dot highlighted
Click-to-Navigate¶
Banners support clickable links:
widgetElement.querySelectorAll('[data-href]').forEach((el) => {
el.addEventListener('click', () => {
if (!editMode) {
window.location = el.dataset.href;
}
});
});
SVG Icons¶
Widget injects SVG sprite:
function injectIconSvg(iconUrl) {
SVGSpriteInject(iconUrl, {
onInjected: (el) => {
el.setAttribute('style', 'display:none');
el.setAttribute('data-src', iconUrl);
}
});
}
Usage Examples¶
Category Banners¶
Promo Banners¶
Slides: Multiple promo images
Slides to Show: 3 (desktop), 1 (mobile)
Autoplay: true
Interval: 4000ms
Brand Carousel¶
Responsive Behavior¶
| Screen | Slides | Gap | Behavior |
|---|---|---|---|
| Desktop (>800px) | 4 | 32px | Full arrows |
| Tablet (551-800px) | 3 | 16px | Touch swipe |
| Mobile (<550px) | 2 | 16px | Touch optimized |
Performance¶
Blaze Slider Advantages¶
- Lightweight (~3KB)
- CSS-based animations
- No jQuery dependency
- Efficient touch handling
Image Optimization¶
- Use appropriate image sizes
- Lazy load if below fold
- WebP format preferred
Inline Editing¶
- Enable Edit Mode in Page Builder
- Click on slide to edit
- Edit content/images
- Links not active in edit mode
Accessibility¶
- ARIA labels for navigation
- Keyboard navigation support
- Pause button for autoplay
- Semantic HTML structure
Notes¶
- Image sizes: Ensure all banners same size
- Slides count: Should be >= slidesToShow
- Autoplay: User can pause
- Mobile: Test touch swipe
- Gap: Adjust according to design
- Links: Test in preview mode