PRUEBA

$0.00 USD

HOHLA 

Reseña 1
Reseña 2
Reseña 3
Reseña 4
Reseña 5
Reseña 6
Reseña 7
Reseña 8
Reseña 9

 

<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 

Reseña 1
Reseña 2
Reseña 3
Reseña 4
Reseña 5
Reseña 6
Reseña 7
Reseña 8
Reseña 9

 

<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 

Reseña 1
Reseña 2
Reseña 3
Reseña 4
Reseña 5
Reseña 6
Reseña 7
Reseña 8
Reseña 9

 

<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>