PRUEBA
HOHLA
<div class="mini-carrusel-mini-resenas">
<div class="mini-viewport-mini-resenas" id="miniViewportResenas">
<div class="mini-track-mini-resenas" id="miniTrackResenas">
<div class="mini-slide-mini-resenas"><img src="https://cdn.shopify.com/s/files/1/0646/2459/0895/files/WhatsApp_Image_2026-03-26_at_11.58.49.jpg?v=1774557583" alt="Reseña 1"></div>
<div class="mini-slide-mini-resenas"><img src="https://cdn.shopify.com/s/files/1/0646/2459/0895/files/WhatsApp_Image_2026-03-26_at_11.52.38.jpg?v=1774557583" alt="Reseña 2"></div>
<div class="mini-slide-mini-resenas"><img src="https://cdn.shopify.com/s/files/1/0646/2459/0895/files/WhatsApp_Image_2026-03-26_at_11.52.38_2.jpg?v=1774557583" alt="Reseña 3"></div>
<div class="mini-slide-mini-resenas"><img src="https://cdn.shopify.com/s/files/1/0646/2459/0895/files/WhatsApp_Image_2026-03-26_at_11.56.01.jpg?v=1774557583" alt="Reseña 4"></div>
<div class="mini-slide-mini-resenas"><img src="https://cdn.shopify.com/s/files/1/0646/2459/0895/files/WhatsApp_Image_2026-03-26_at_11.52.38_1.jpg?v=1774557583" alt="Reseña 5"></div>
<div class="mini-slide-mini-resenas"><img src="https://cdn.shopify.com/s/files/1/0646/2459/0895/files/WhatsApp_Image_2026-03-26_at_11.56.01_2.jpg?v=1774557583" alt="Reseña 6"></div>
<div class="mini-slide-mini-resenas"><img src="https://cdn.shopify.com/s/files/1/0646/2459/0895/files/WhatsApp_Image_2026-03-26_at_11.56.01_1.jpg?v=1774557583" alt="Reseña 7"></div>
<div class="mini-slide-mini-resenas"><img src="https://cdn.shopify.com/s/files/1/0646/2459/0895/files/WhatsApp_Image_2026-03-26_at_11.52.37.jpg?v=1774557583" alt="Reseña 8"></div>
<div class="mini-slide-mini-resenas"><img src="https://cdn.shopify.com/s/files/1/0646/2459/0895/files/WhatsApp_Image_2026-03-26_at_11.58.37.jpg?v=1774557583" alt="Reseña 9"></div>
</div>
</div>
</div>
<style>
.mini-carrusel-mini-resenas{
width:100%;
max-width:520px;
aspect-ratio:4/5;
margin:auto;
overflow:hidden;
border-radius:16px;
background:#fff;
position:relative;
}
.mini-viewport-mini-resenas{
width:100%;
height:100%;
overflow:hidden;
touch-action:pan-y;
}
.mini-track-mini-resenas{
display:flex;
height:100%;
transition:transform .4s ease;
will-change:transform;
}
.mini-slide-mini-resenas{
min-width:50%;
height:100%;
padding:8px;
box-sizing:border-box;
user-select:none;
}
.mini-slide-mini-resenas img{
width:100%;
height:100%;
object-fit:contain;
border-radius:12px;
background:#f5f5f5;
display:block;
pointer-events:none;
user-select:none;
-webkit-user-drag:none;
}
</style>
<script>
(function(){
const track = document.getElementById("miniTrackResenas");
const viewport = document.getElementById("miniViewportResenas");
if (!track || !viewport) return;
track.innerHTML += track.innerHTML;
let index = 0;
let autoplayId = null;
let startX = 0;
let isDragging = false;
let moved = false;
const stepPercent = 50;
const originalCount = track.children.length / 2;
const intervalMs = 1000;
function applyTransform(useTransition) {
track.style.transition = useTransition ? "transform .4s ease" : "none";
track.style.transform = "translateX(-" + (index * stepPercent) + "%)";
}
function normalizeBackward() {
if (index < 0) {
track.style.transition = "none";
index = originalCount - 1;
track.style.transform = "translateX(-" + (index * stepPercent) + "%)";
}
}
function nextSlide() {
index++;
applyTransform(true);
if (index >= originalCount) {
setTimeout(function(){
track.style.transition = "none";
index = 0;
track.style.transform = "translateX(0)";
}, 400);
}
}
function prevSlide() {
index--;
normalizeBackward();
applyTransform(true);
}
function stopAutoplay() {
if (autoplayId) {
clearInterval(autoplayId);
autoplayId = null;
}
}
function startAutoplay() {
stopAutoplay();
autoplayId = setInterval(nextSlide, intervalMs);
}
viewport.addEventListener("touchstart", function(e){
stopAutoplay();
isDragging = true;
moved = false;
startX = e.touches[0].clientX;
}, {passive:true});
viewport.addEventListener("touchmove", function(){
if (isDragging) moved = true;
}, {passive:true});
viewport.addEventListener("touchend", function(e){
if (!isDragging) return;
const endX = e.changedTouches[0].clientX;
const diff = startX - endX;
if (diff > 50) {
nextSlide();
} else if (diff < -50) {
prevSlide();
}
isDragging = false;
setTimeout(startAutoplay, 1500);
}, {passive:true});
viewport.addEventListener("mousedown", function(e){
stopAutoplay();
isDragging = true;
moved = false;
startX = e.clientX;
});
window.addEventListener("mousemove", function(e){
if (!isDragging) return;
if (Math.abs(e.clientX - startX) > 8) moved = true;
});
window.addEventListener("mouseup", function(e){
if (!isDragging) return;
const endX = e.clientX;
const diff = startX - endX;
if (diff > 50) {
nextSlide();
} else if (diff < -50) {
prevSlide();
}
isDragging = false;
setTimeout(startAutoplay, 1500);
});
viewport.addEventListener("mouseenter", stopAutoplay);
viewport.addEventListener("mouseleave", function(){
if (!isDragging) startAutoplay();
});
applyTransform(false);
startAutoplay();
})();
</script>
HOHLA
<div class="mini-carrusel-mini-resenas">
<div class="mini-viewport-mini-resenas" id="miniViewportResenas">
<div class="mini-track-mini-resenas" id="miniTrackResenas">
<div class="mini-slide-mini-resenas"><img src="https://cdn.shopify.com/s/files/1/0646/2459/0895/files/WhatsApp_Image_2026-03-26_at_11.58.49.jpg?v=1774557583" alt="Reseña 1"></div>
<div class="mini-slide-mini-resenas"><img src="https://cdn.shopify.com/s/files/1/0646/2459/0895/files/WhatsApp_Image_2026-03-26_at_11.52.38.jpg?v=1774557583" alt="Reseña 2"></div>
<div class="mini-slide-mini-resenas"><img src="https://cdn.shopify.com/s/files/1/0646/2459/0895/files/WhatsApp_Image_2026-03-26_at_11.52.38_2.jpg?v=1774557583" alt="Reseña 3"></div>
<div class="mini-slide-mini-resenas"><img src="https://cdn.shopify.com/s/files/1/0646/2459/0895/files/WhatsApp_Image_2026-03-26_at_11.56.01.jpg?v=1774557583" alt="Reseña 4"></div>
<div class="mini-slide-mini-resenas"><img src="https://cdn.shopify.com/s/files/1/0646/2459/0895/files/WhatsApp_Image_2026-03-26_at_11.52.38_1.jpg?v=1774557583" alt="Reseña 5"></div>
<div class="mini-slide-mini-resenas"><img src="https://cdn.shopify.com/s/files/1/0646/2459/0895/files/WhatsApp_Image_2026-03-26_at_11.56.01_2.jpg?v=1774557583" alt="Reseña 6"></div>
<div class="mini-slide-mini-resenas"><img src="https://cdn.shopify.com/s/files/1/0646/2459/0895/files/WhatsApp_Image_2026-03-26_at_11.56.01_1.jpg?v=1774557583" alt="Reseña 7"></div>
<div class="mini-slide-mini-resenas"><img src="https://cdn.shopify.com/s/files/1/0646/2459/0895/files/WhatsApp_Image_2026-03-26_at_11.52.37.jpg?v=1774557583" alt="Reseña 8"></div>
<div class="mini-slide-mini-resenas"><img src="https://cdn.shopify.com/s/files/1/0646/2459/0895/files/WhatsApp_Image_2026-03-26_at_11.58.37.jpg?v=1774557583" alt="Reseña 9"></div>
</div>
</div>
</div>
<style>
.mini-carrusel-mini-resenas{
width:100%;
max-width:520px;
aspect-ratio:4/5;
margin:auto;
overflow:hidden;
border-radius:16px;
background:#fff;
position:relative;
}
.mini-viewport-mini-resenas{
width:100%;
height:100%;
overflow:hidden;
touch-action:pan-y;
}
.mini-track-mini-resenas{
display:flex;
height:100%;
transition:transform .4s ease;
will-change:transform;
}
.mini-slide-mini-resenas{
min-width:50%;
height:100%;
padding:8px;
box-sizing:border-box;
user-select:none;
}
.mini-slide-mini-resenas img{
width:100%;
height:100%;
object-fit:contain;
border-radius:12px;
background:#f5f5f5;
display:block;
pointer-events:none;
user-select:none;
-webkit-user-drag:none;
}
</style>
<script>
(function(){
const track = document.getElementById("miniTrackResenas");
const viewport = document.getElementById("miniViewportResenas");
if (!track || !viewport) return;
track.innerHTML += track.innerHTML;
let index = 0;
let autoplayId = null;
let startX = 0;
let isDragging = false;
let moved = false;
const stepPercent = 50;
const originalCount = track.children.length / 2;
const intervalMs = 1000;
function applyTransform(useTransition) {
track.style.transition = useTransition ? "transform .4s ease" : "none";
track.style.transform = "translateX(-" + (index * stepPercent) + "%)";
}
function normalizeBackward() {
if (index < 0) {
track.style.transition = "none";
index = originalCount - 1;
track.style.transform = "translateX(-" + (index * stepPercent) + "%)";
}
}
function nextSlide() {
index++;
applyTransform(true);
if (index >= originalCount) {
setTimeout(function(){
track.style.transition = "none";
index = 0;
track.style.transform = "translateX(0)";
}, 400);
}
}
function prevSlide() {
index--;
normalizeBackward();
applyTransform(true);
}
function stopAutoplay() {
if (autoplayId) {
clearInterval(autoplayId);
autoplayId = null;
}
}
function startAutoplay() {
stopAutoplay();
autoplayId = setInterval(nextSlide, intervalMs);
}
viewport.addEventListener("touchstart", function(e){
stopAutoplay();
isDragging = true;
moved = false;
startX = e.touches[0].clientX;
}, {passive:true});
viewport.addEventListener("touchmove", function(){
if (isDragging) moved = true;
}, {passive:true});
viewport.addEventListener("touchend", function(e){
if (!isDragging) return;
const endX = e.changedTouches[0].clientX;
const diff = startX - endX;
if (diff > 50) {
nextSlide();
} else if (diff < -50) {
prevSlide();
}
isDragging = false;
setTimeout(startAutoplay, 1500);
}, {passive:true});
viewport.addEventListener("mousedown", function(e){
stopAutoplay();
isDragging = true;
moved = false;
startX = e.clientX;
});
window.addEventListener("mousemove", function(e){
if (!isDragging) return;
if (Math.abs(e.clientX - startX) > 8) moved = true;
});
window.addEventListener("mouseup", function(e){
if (!isDragging) return;
const endX = e.clientX;
const diff = startX - endX;
if (diff > 50) {
nextSlide();
} else if (diff < -50) {
prevSlide();
}
isDragging = false;
setTimeout(startAutoplay, 1500);
});
viewport.addEventListener("mouseenter", stopAutoplay);
viewport.addEventListener("mouseleave", function(){
if (!isDragging) startAutoplay();
});
applyTransform(false);
startAutoplay();
})();
</script>
HOHLA
<div class="mini-carrusel-mini-resenas">
<div class="mini-viewport-mini-resenas" id="miniViewportResenas">
<div class="mini-track-mini-resenas" id="miniTrackResenas">
<div class="mini-slide-mini-resenas"><img src="https://cdn.shopify.com/s/files/1/0646/2459/0895/files/WhatsApp_Image_2026-03-26_at_11.58.49.jpg?v=1774557583" alt="Reseña 1"></div>
<div class="mini-slide-mini-resenas"><img src="https://cdn.shopify.com/s/files/1/0646/2459/0895/files/WhatsApp_Image_2026-03-26_at_11.52.38.jpg?v=1774557583" alt="Reseña 2"></div>
<div class="mini-slide-mini-resenas"><img src="https://cdn.shopify.com/s/files/1/0646/2459/0895/files/WhatsApp_Image_2026-03-26_at_11.52.38_2.jpg?v=1774557583" alt="Reseña 3"></div>
<div class="mini-slide-mini-resenas"><img src="https://cdn.shopify.com/s/files/1/0646/2459/0895/files/WhatsApp_Image_2026-03-26_at_11.56.01.jpg?v=1774557583" alt="Reseña 4"></div>
<div class="mini-slide-mini-resenas"><img src="https://cdn.shopify.com/s/files/1/0646/2459/0895/files/WhatsApp_Image_2026-03-26_at_11.52.38_1.jpg?v=1774557583" alt="Reseña 5"></div>
<div class="mini-slide-mini-resenas"><img src="https://cdn.shopify.com/s/files/1/0646/2459/0895/files/WhatsApp_Image_2026-03-26_at_11.56.01_2.jpg?v=1774557583" alt="Reseña 6"></div>
<div class="mini-slide-mini-resenas"><img src="https://cdn.shopify.com/s/files/1/0646/2459/0895/files/WhatsApp_Image_2026-03-26_at_11.56.01_1.jpg?v=1774557583" alt="Reseña 7"></div>
<div class="mini-slide-mini-resenas"><img src="https://cdn.shopify.com/s/files/1/0646/2459/0895/files/WhatsApp_Image_2026-03-26_at_11.52.37.jpg?v=1774557583" alt="Reseña 8"></div>
<div class="mini-slide-mini-resenas"><img src="https://cdn.shopify.com/s/files/1/0646/2459/0895/files/WhatsApp_Image_2026-03-26_at_11.58.37.jpg?v=1774557583" alt="Reseña 9"></div>
</div>
</div>
</div>
<style>
.mini-carrusel-mini-resenas{
width:100%;
max-width:520px;
aspect-ratio:4/5;
margin:auto;
overflow:hidden;
border-radius:16px;
background:#fff;
position:relative;
}
.mini-viewport-mini-resenas{
width:100%;
height:100%;
overflow:hidden;
touch-action:pan-y;
}
.mini-track-mini-resenas{
display:flex;
height:100%;
transition:transform .4s ease;
will-change:transform;
}
.mini-slide-mini-resenas{
min-width:50%;
height:100%;
padding:8px;
box-sizing:border-box;
user-select:none;
}
.mini-slide-mini-resenas img{
width:100%;
height:100%;
object-fit:contain;
border-radius:12px;
background:#f5f5f5;
display:block;
pointer-events:none;
user-select:none;
-webkit-user-drag:none;
}
</style>
<script>
(function(){
const track = document.getElementById("miniTrackResenas");
const viewport = document.getElementById("miniViewportResenas");
if (!track || !viewport) return;
track.innerHTML += track.innerHTML;
let index = 0;
let autoplayId = null;
let startX = 0;
let isDragging = false;
let moved = false;
const stepPercent = 50;
const originalCount = track.children.length / 2;
const intervalMs = 1000;
function applyTransform(useTransition) {
track.style.transition = useTransition ? "transform .4s ease" : "none";
track.style.transform = "translateX(-" + (index * stepPercent) + "%)";
}
function normalizeBackward() {
if (index < 0) {
track.style.transition = "none";
index = originalCount - 1;
track.style.transform = "translateX(-" + (index * stepPercent) + "%)";
}
}
function nextSlide() {
index++;
applyTransform(true);
if (index >= originalCount) {
setTimeout(function(){
track.style.transition = "none";
index = 0;
track.style.transform = "translateX(0)";
}, 400);
}
}
function prevSlide() {
index--;
normalizeBackward();
applyTransform(true);
}
function stopAutoplay() {
if (autoplayId) {
clearInterval(autoplayId);
autoplayId = null;
}
}
function startAutoplay() {
stopAutoplay();
autoplayId = setInterval(nextSlide, intervalMs);
}
viewport.addEventListener("touchstart", function(e){
stopAutoplay();
isDragging = true;
moved = false;
startX = e.touches[0].clientX;
}, {passive:true});
viewport.addEventListener("touchmove", function(){
if (isDragging) moved = true;
}, {passive:true});
viewport.addEventListener("touchend", function(e){
if (!isDragging) return;
const endX = e.changedTouches[0].clientX;
const diff = startX - endX;
if (diff > 50) {
nextSlide();
} else if (diff < -50) {
prevSlide();
}
isDragging = false;
setTimeout(startAutoplay, 1500);
}, {passive:true});
viewport.addEventListener("mousedown", function(e){
stopAutoplay();
isDragging = true;
moved = false;
startX = e.clientX;
});
window.addEventListener("mousemove", function(e){
if (!isDragging) return;
if (Math.abs(e.clientX - startX) > 8) moved = true;
});
window.addEventListener("mouseup", function(e){
if (!isDragging) return;
const endX = e.clientX;
const diff = startX - endX;
if (diff > 50) {
nextSlide();
} else if (diff < -50) {
prevSlide();
}
isDragging = false;
setTimeout(startAutoplay, 1500);
});
viewport.addEventListener("mouseenter", stopAutoplay);
viewport.addEventListener("mouseleave", function(){
if (!isDragging) startAutoplay();
});
applyTransform(false);
startAutoplay();
})();
</script>








