Slider mensajes - Bsale-IO/template-docs GitHub Wiki
Código Componente Slider mensajes
<!-- Opciones de íconos disponibles:
* truck (camión)
* gift (regalo)
* exclamation-circle (exclamación en círculo)
* fire (fuego)
* store (tienda) -->
<!-- Configuración de parámetros -->
{% assign cantidad_slides = 3 %} <!-- Elige la cantidad de sliders visibles: Ajusta a 1, 2 o 3 según lo que necesites. -->
{% assign icono_1 = "fire" %}
{% assign titulo_1 = "PRECIOS INMEJORABLES" %}
{% assign texto_1 = "Ofertas exclusivas y descuentos especiales todos los días." %}
{% assign icono_2 = "truck" %}
{% assign titulo_2 = "ENVÍO GRATIS" %}
{% assign texto_2 = "En compras sobre $50.000" %}
{% assign icono_3 = "exclamation-circle" %}
{% assign titulo_3 = "CALIDAD GARANTIZADA" %}
{% assign texto_3 = "Productos seleccionados con altos estándares." %}
<div class="mobile-contact-banner d-lg-none slider-count-{{ cantidad_slides }}">
<div class="container">
<div class="slider-container">
<div class="slider-track">
{% if cantidad_slides >= 1 %}
<div class="mcb-slide slide-1">
<p class="mb-0"><i class='fas fa-{{ icono_1 }}'></i> <strong>{{ titulo_1 }}</strong> {{ texto_1 }}</p>
</div>
{% endif %}
{% if cantidad_slides >= 2 %}
<div class="mcb-slide slide-2">
<p class="mb-0"><i class='fas fa-{{ icono_2 }}'></i> <strong>{{ titulo_2 }}</strong> {{ texto_2 }}</p>
</div>
{% endif %}
{% if cantidad_slides >= 3 %}
<div class="mcb-slide slide-3">
<p class="mb-0"><i class='fas fa-{{ icono_3 }}'></i> <strong>{{ titulo_3 }}</strong> {{ texto_3 }}</p>
</div>
{% endif %}
</div>
</div>
</div>
</div>
Código CSS Slider mensajes
:root {
/********************************************************************
Cabecera Slider mensajes
*********************************************************************/
--mobile-contact-banner-bg: linear-gradient(240deg, #f3f3f3, #ffffff);
--mobile-contact-banner-text: var(--body-txt-default-color);
--mobile-contact-banner-title-color: #2d3748;
--mobile-contact-banner-icon-color: var(--primary-color);
/* Tamaños configurables */
--mobile-contact-banner-font-size: 11px;
--mobile-contact-banner-icon-size: 12px;
}
.mobile-contact-banner {
width: 100%;
font-size: var(--mobile-contact-banner-font-size);
line-height: 2;
background: var(--mobile-contact-banner-bg);
border-top: 1px solid #f9f9f9;
border-bottom: 1px solid #f9f9f9;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
overflow: hidden;
text-align: center;
color: var(--mobile-contact-banner-text);
text-decoration: none;
}
.mobile-contact-banner .container {
width: 100%;
max-width: 1200px;
margin: 0 auto;
padding: 0 15px;
}
.slider-container {
position: relative;
overflow: hidden;
height: auto;
min-height: 40px;
}
.slider-track {
display: flex;
flex-direction: column;
}
.mcb-slide {
height: auto;
min-height: 40px;
position: absolute;
width: 100%;
white-space: normal;
overflow: visible;
text-overflow: clip;
display: flex;
align-items: center;
justify-content: center;
padding: 5px 0;
opacity: 0;
}
.mcb-slide p {
max-width: 100%;
margin: 0;
line-height: 1.4;
}
.mobile-contact-banner i {
color: var(--mobile-contact-banner-icon-color);
margin: 0 4px;
font-size: var(--mobile-contact-banner-icon-size);
}
.mobile-contact-banner strong {
color: var(--mobile-contact-banner-title-color);
}
/* Estilos para 1 slide */
.slider-count-1 .slide-1 {
position: static;
opacity: 1;
transform: translateY(0);
animation: none;
}
/* Estilos para 2 slides */
.slider-count-2 .slide-1 {
animation: fadeInOut2 10s infinite;
animation-delay: 0s;
}
.slider-count-2 .slide-2 {
animation: fadeInOut2 10s infinite;
animation-delay: 5s;
}
/* Estilos para 3 slides */
.slider-count-3 .slide-1 {
animation: fadeInOut3 15s infinite;
animation-delay: 0s;
}
.slider-count-3 .slide-2 {
animation: fadeInOut3 15s infinite;
animation-delay: 5s;
}
.slider-count-3 .slide-3 {
animation: fadeInOut3 15s infinite;
animation-delay: 10s;
}
@keyframes fadeInOut2 {
0%, 100% {
opacity: 0;
transform: translateY(40px);
}
5%, 45% {
opacity: 1;
transform: translateY(0);
}
50%, 100% {
opacity: 0;
transform: translateY(-40px);
}
}
@keyframes fadeInOut3 {
0%, 100% {
opacity: 0;
transform: translateY(40px);
}
3%, 30% {
opacity: 1;
transform: translateY(0);
}
33%, 100% {
opacity: 0;
transform: translateY(-40px);
}
}
.slider-container:hover .slider-track {
animation-play-state: paused;
}
@media (min-width: 992px) {
.mobile-contact-banner {
display: none;
}
}
@media (max-width: 360px) {
.container {
padding: 0 8px;
}
}
Código JavaScript Slider mensajes
// Verifica si estás en la página de inicio y muestra el slider de mensajes
if (window.location.pathname === '/') {
document.getElementById('slider-mensajes').style.display = 'block';
}
Note
1.- el {{'Cabecera > Slider mensajes'| get_component }} se llama en la cabecera
2.- el código JavaScript se implementa en la cabecera, esa función es para que solamente se vea en el home y no en otra sección de la web
{{'Cabecera > Slider mensajes'| get_component }}
EL principio del componente tiene sus variables de configuración la cual son las siguientes:
{% assign icono_1 = "fire" %} <!-- Ícono para el primer mensaje -->
{% assign titulo_1 = "PRECIOS INMEJORABLES" %}
{% assign texto_1 = "Ofertas exclusivas y descuentos especiales todos los días." %}
{% assign icono_2 = "truck" %} <!-- Ícono para el segundo mensaje -->
{% assign titulo_2 = "ENVÍO GRATIS" %}
{% assign texto_2 = "En compras sobre $50.000" %}
{% assign icono_3 = "exclamation-circle" %} <!-- Ícono para el tercer mensaje -->
{% assign titulo_3 = "CALIDAD GARANTIZADA" %}
{% assign texto_3 = "Productos seleccionados con altos estándares." %}