Update: Base para Andractiv
This commit is contained in:
@@ -0,0 +1,538 @@
|
||||
<style>
|
||||
.back0 {
|
||||
background-image: url("img/bg03.jpg");
|
||||
background-position: center bottom;
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.wrap-sw {
|
||||
background: rgba(0, 211, 95, 10);
|
||||
background: linear-gradient(270deg, rgba(0, 211, 95, 0.7) 0%, rgba(0, 96, 255, 0.7) 100%);
|
||||
display: none;
|
||||
}
|
||||
|
||||
.swiper-button-disabled {
|
||||
opacity: 0.8;
|
||||
filter: grayscale(1);
|
||||
}
|
||||
|
||||
.card.flat {
|
||||
padding: 0;
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.card.flat .card-body {
|
||||
padding: 0;
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.mySwiper {
|
||||
width: 100%;
|
||||
height: 100px !important;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.mySwiper .swiper-slide {
|
||||
text-align: center;
|
||||
font-size: 16px;
|
||||
color: #fff;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-justify-content: center;
|
||||
-ms-flex-pack: center;
|
||||
justify-content: center;
|
||||
-webkit-align-items: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
-webkit-flex-direction: column;
|
||||
-ms-flex-direction: column;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.mySwiper .swiper-slide .img-icon {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
object-fit: fill;
|
||||
}
|
||||
|
||||
.mySwiper .swiper-slide img {
|
||||
width: auto;
|
||||
height: 100px;
|
||||
object-fit: fill;
|
||||
opacity: 0.5;
|
||||
-webkit-transform: scale(0.6);
|
||||
transform: scale(0.6);
|
||||
transition: all 0.5s ease;
|
||||
}
|
||||
|
||||
.mySwiper .swiper-slide-active img {
|
||||
opacity: 1;
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1);
|
||||
object-fit: fill;
|
||||
}
|
||||
|
||||
.swiper-nav {
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-flex-direction: row;
|
||||
-ms-flex-direction: row;
|
||||
flex-direction: row;
|
||||
width: 100%;
|
||||
max-width: 300px;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 55;
|
||||
top: 0;
|
||||
-webkit-justify-content: space-between;
|
||||
-ms-flex-pack: justify;
|
||||
justify-content: space-between;
|
||||
-webkit-align-items: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.swiper-custom-button-next img,
|
||||
.swiper-custom-button-prev img {
|
||||
height: 85px;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.swiper-custom-button-next {
|
||||
border-radius: 20%;
|
||||
}
|
||||
|
||||
.row-card {
|
||||
border-radius: 15px;
|
||||
background-color: rgba(255, 255, 255, .6);
|
||||
box-shadow: rgba(0, 0, 0, 0.15) 0px 15px 25px, rgba(0, 0, 0, 0.05) 0px 5px 10px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.custom-card .swiper-slide {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.btn-open-info {
|
||||
cursor: pointer;
|
||||
width: 100%;
|
||||
max-width: 70px;
|
||||
border-radius: 50%;
|
||||
margin-left: 1em;
|
||||
}
|
||||
|
||||
.customSwiper .swiper-slide {
|
||||
height: 300px !important;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
|
||||
.swiper-custom-button-next img,
|
||||
.swiper-custom-button-prev img {
|
||||
height: 150px;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.mySwiper {
|
||||
height: 200px !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.card-with-avatar {
|
||||
position: relative;
|
||||
background: linear-gradient(to right, #D4F8E8, #C0F1FF);
|
||||
border-radius: 12px;
|
||||
padding: 2rem;
|
||||
/* deja espacio para el avatar a la derecha */
|
||||
padding-right: 300px;
|
||||
overflow: visible;
|
||||
|
||||
/* para que el avatar “salga” sin recortarse */
|
||||
}
|
||||
|
||||
/* Texto dentro de la tarjeta */
|
||||
.card-body p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* El círculo que contendrá la imagen */
|
||||
.avatar-circle {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
right: 0;
|
||||
transform: translateY(-50%);
|
||||
height: 260px;
|
||||
}
|
||||
|
||||
/* La imagen ocupa todo el círculo y se recorta */
|
||||
.avatar-circle img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
||||
.swal2-popup.swal-fullscreen {
|
||||
align-items: center;
|
||||
height: auto !important;
|
||||
min-height: 100vh;
|
||||
align-content: center;
|
||||
}
|
||||
|
||||
.swal2-popup.swal-fullscreen .swal2-html-container {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.custom-card-swal {
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
}
|
||||
|
||||
@media (max-width: 576px) {
|
||||
|
||||
.customSwiper .swiper-slide {
|
||||
height: 370px !important;
|
||||
}
|
||||
|
||||
.avatar-circle {
|
||||
position: relative;
|
||||
top: 0;
|
||||
transform: translateY(0px);
|
||||
max-width: 70%;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.avatar-circle img {
|
||||
object-fit: scale-down;
|
||||
}
|
||||
|
||||
.mySwiper .swiper-slide-active img {
|
||||
padding: 9px;
|
||||
}
|
||||
|
||||
.card-with-avatar {
|
||||
position: relative;
|
||||
background: linear-gradient(to right, #D4F8E8, #C0F1FF);
|
||||
border-radius: 12px;
|
||||
padding: 1rem;
|
||||
/* deja espacio para el avatar a la derecha */
|
||||
padding-right: 0;
|
||||
overflow: visible;
|
||||
|
||||
/* para que el avatar “salga” sin recortarse */
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<div class="w-100 page-sco back0 h-100 pt-4 pt-md-0" id="sco15">
|
||||
<div class="container-fluid g-0">
|
||||
<div class="row justify-content-center align-items-center h-100">
|
||||
<div class="col-12">
|
||||
<div class="row">
|
||||
<div class="col-12 text-center px-4 animate__animated animate__backInLeft">
|
||||
<h2 class="fw-semibold text-secondary">Componentes y beneficios</h2>
|
||||
<p>En infertilidad masculina</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-center wrap-sw text-white">
|
||||
<div class="container-fluid">
|
||||
<div class="row justify-content-center align-items-center">
|
||||
<div class="col-10 col-md-12">
|
||||
<div class="card custom-card flat">
|
||||
<div class="card-body">
|
||||
<!-- Swiper -->
|
||||
<div class="swiper mySwiper">
|
||||
<div class="swiper-wrapper">
|
||||
<div class="swiper-slide">
|
||||
<div class="img-icon">
|
||||
<img src="img/icon_01.png" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="swiper-slide">
|
||||
<div class="img-icon">
|
||||
<img src="img/icon_02.png" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="swiper-slide">
|
||||
<div class="img-icon">
|
||||
<img src="img/icon_03.png" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="swiper-slide">
|
||||
<div class="img-icon">
|
||||
<img src="img/icon_04.png" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- navegacion -->
|
||||
<div class="position-absolute mx-auto swiper-nav">
|
||||
<div class="swiper-custom-button-prev">
|
||||
<img src="img/prev.webp" alt="" />
|
||||
</div>
|
||||
<div class="swiper-custom-button-next">
|
||||
<img src="img/next.webp" alt="" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="wrap-cards mt-md-0 mt-2" style="display: none">
|
||||
<div class="container">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-12 col-md-10 col-lg-8">
|
||||
<div class="card custom-card bg-transparent border-0 rounded-0">
|
||||
<div class="card-body py-0 bg-transparent border-0 rounded-0">
|
||||
<!-- Swiper con validación de slides visitados -->
|
||||
<div class="swiper customSwiper">
|
||||
<div class="swiper-wrapper">
|
||||
<div class="swiper-slide py-3 pe-3 ps-2 text-center">
|
||||
<div class="d-flex h-100 align-items-center justify-content-center">
|
||||
<div class="card-with-avatar">
|
||||
<div class="card-body">
|
||||
<p>
|
||||
Conocimiento de tus <strong
|
||||
class="text-azul-claro">compromisos</strong>:
|
||||
diario, semanal y quincenal.
|
||||
</p>
|
||||
</div>
|
||||
<div class="avatar-circle">
|
||||
<img src="img/04.1.png" alt="Avatar ilustrado">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="swiper-slide py-3 pe-3 ps-2 text-center">
|
||||
<div class="d-flex h-100 align-items-center justify-content-center">
|
||||
<div class="card-with-avatar">
|
||||
<div class="card-body">
|
||||
<p><strong class="text-azul-claro">Grito de
|
||||
guerra</strong>: motivación para arrancar con
|
||||
fuerza.</p>
|
||||
</div>
|
||||
<div class="avatar-circle">
|
||||
<img src="img/04.2.png" alt="Avatar ilustrado">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="swiper-slide text-center">
|
||||
<div class="d-flex h-100 align-items-center justify-content-center">
|
||||
<div class="card-with-avatar">
|
||||
<div class="card-body">
|
||||
<p><strong class="text-azul-claro">Role Play</strong>:
|
||||
ejercicios para mejorar tu discurso de ventas.</p>
|
||||
</div>
|
||||
<div class="avatar-circle">
|
||||
<img src="img/04.3.png" alt="Avatar ilustrado">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="swiper-slide text-center">
|
||||
<div class="d-flex h-100 align-items-center justify-content-center">
|
||||
<div class="card-with-avatar">
|
||||
<div class="card-body">
|
||||
<p><strong class="text-azul-claro">Prospección</strong>:
|
||||
ya sea por telemarketing, cambaceo tradicional, en
|
||||
negocios o seguimiento.</p>
|
||||
</div>
|
||||
<div class="avatar-circle">
|
||||
<img src="img/04.4.png" alt="Avatar ilustrado">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$(function () {
|
||||
"use strict";
|
||||
|
||||
// $("body").addClass("fake");
|
||||
const audioh06 = CourseNav.createSound("audio/audioh06.mp3");
|
||||
|
||||
let swiperIcons;
|
||||
let swiperCards;
|
||||
|
||||
audioh06.on("end", function () {
|
||||
|
||||
$(".wrap-sw").show();
|
||||
$(".wrap-cards").show();
|
||||
swiperCards = initializeSwiper(".customSwiper", onAllSlidesVisited, {
|
||||
autoHeight: false, // Ajusta la altura del contenedor al slide activo
|
||||
grabCursor: false, // Oculta el cursor de "mano" al pasar sobre el Swiper
|
||||
allowTouchMove: false, // Deshabilita el arrastre (drag)
|
||||
});
|
||||
$('.swiper-custom-button-next').addClass('animate__animated animate__pulse animate__infinite');
|
||||
swiperIcons = initializeSwiper(
|
||||
".mySwiper",
|
||||
onAllSlidesVisited,
|
||||
{
|
||||
slidesPerView: 5,
|
||||
centeredSlides: true,
|
||||
spaceBetween: 30,
|
||||
grabCursor: false,
|
||||
allowTouchMove: false, // Deshabilita el arrastre (drag)
|
||||
navigation: {
|
||||
nextEl: ".swiper-custom-button-next",
|
||||
prevEl: ".swiper-custom-button-prev",
|
||||
},
|
||||
breakpoints: {
|
||||
0: {
|
||||
slidesPerView: 2,
|
||||
spaceBetween: 20,
|
||||
},
|
||||
768: {
|
||||
slidesPerView: 5,
|
||||
spaceBetween: 30,
|
||||
},
|
||||
},
|
||||
},
|
||||
audioFiles,
|
||||
);
|
||||
// Sincronizar los Swipers
|
||||
swiperIcons.on("slideChange", function () {
|
||||
const currentIndex = swiperIcons.activeIndex;
|
||||
swiperCards.slideTo(currentIndex);
|
||||
});
|
||||
});
|
||||
CourseNav.audioController.stopAllSoundsAndPlay(audioh06);
|
||||
const audioFiles = [
|
||||
CourseNav.createSound("audio/audio11.mp3"),
|
||||
CourseNav.createSound("audio/audio12.mp3"),
|
||||
CourseNav.createSound("audio/audio13.mp3"),
|
||||
CourseNav.createSound("audio/audio14.mp3"),
|
||||
];
|
||||
|
||||
|
||||
function onAllSlidesVisited() {
|
||||
console.log("completado");
|
||||
$('.swiper-custom-button-next').removeClass('animate__animated animate__pulse animate__infinite');
|
||||
CourseNav.setSlideVisited();
|
||||
}
|
||||
|
||||
$(".btn-open-info").click(function () {
|
||||
const $element = $(this);
|
||||
$(this).removeClass("animate__animated animate__pulse animate__infinite").addClass("visited");
|
||||
const html = $($(this).data("popid")).html();
|
||||
// Validación del audio
|
||||
let audio = null;
|
||||
const audioData = $element.data("sound");
|
||||
console.log(audioData);
|
||||
if (audioData) {
|
||||
try {
|
||||
audio = eval(audioData);
|
||||
if (audio) {
|
||||
CourseNav.audioController.stopAllSoundsAndPlay(audio);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(`Error al evaluar el audio: ${audioData}`, error);
|
||||
}
|
||||
}
|
||||
|
||||
Swal.fire({
|
||||
html: html,
|
||||
target: "body",
|
||||
customClass: "poup_class",
|
||||
confirmButtonText: "Cerrar",
|
||||
showConfirmButton: false,
|
||||
showCloseButton: true,
|
||||
closeButtonHtml: '<span class="swal2-close-x">x</span>',
|
||||
showDenyButton: false,
|
||||
showCancelButton: false,
|
||||
allowOutsideClick: false,
|
||||
allowEscapeKey: false,
|
||||
focusConfirm: false,
|
||||
willOpen: () => {
|
||||
// $(".swal2-popup").css("padding", "0");
|
||||
// $(".swal2-popup").css("box-shadow", "none");
|
||||
// $(".swal2-container").css("padding", "0");
|
||||
// if (audio) {
|
||||
// CourseNav.audioController.stopAllSoundsAndPlay(audio);
|
||||
// }
|
||||
},
|
||||
didOpen: null,
|
||||
didRender: null,
|
||||
willClose: () => {
|
||||
CourseNav.audioController.stopAudio();
|
||||
},
|
||||
didClose: null,
|
||||
didDestroy: null,
|
||||
});
|
||||
});
|
||||
|
||||
function initializeSwiper(swiperContainer, callback, options = {}, audios = [], autoPlaySound = true) {
|
||||
const visitedSlides = new Set();
|
||||
const container = typeof swiperContainer === "string" ? document.querySelector(swiperContainer) : swiperContainer;
|
||||
const parent = container.parentElement;
|
||||
if (options.navigation && options.navigation.nextEl && options.navigation.prevEl) {
|
||||
options.navigation.nextEl = container.querySelector(options.navigation.nextEl)
|
||||
? container.querySelector(options.navigation.nextEl)
|
||||
: parent.querySelector(options.navigation.nextEl);
|
||||
options.navigation.prevEl = container.querySelector(options.navigation.prevEl)
|
||||
? container.querySelector(options.navigation.prevEl)
|
||||
: parent.querySelector(options.navigation.prevEl);
|
||||
}
|
||||
const defaultParams = {
|
||||
effect: "slide",
|
||||
loop: false,
|
||||
autoHeight: true,
|
||||
};
|
||||
|
||||
// Combina opciones personalizadas con las por defecto
|
||||
const params = {
|
||||
...defaultParams,
|
||||
...options,
|
||||
on: {
|
||||
init: function () {
|
||||
visitedSlides.add(this.activeIndex);
|
||||
if (audios.length > 0 && audios[this.activeIndex] && autoPlaySound) {
|
||||
CourseNav.audioController.stopAllSoundsAndPlay(audios[this.activeIndex]);
|
||||
}
|
||||
},
|
||||
slideChange: function () {
|
||||
const index = this.activeIndex;
|
||||
visitedSlides.add(index);
|
||||
if (audios.length > 0) {
|
||||
CourseNav.audioController.stopAudio();
|
||||
}
|
||||
if (audios.length > 0 && audios[index]) {
|
||||
CourseNav.audioController.stopAllSoundsAndPlay(audios[index]);
|
||||
}
|
||||
if (visitedSlides.size === this.slides.length && typeof callback === "function") {
|
||||
callback();
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
return new Swiper(container, params);
|
||||
}
|
||||
|
||||
});
|
||||
</script>
|
||||
Reference in New Issue
Block a user