Custom Banner

Banner rotatorio personalizado en VueJS

Custom Banner Vue es un banner rotatorio de elementos, creado en lenguaje JavaScript, con distintas opciones de personalización y diseñado para el framework VueJS. Custom Banner es fácil y rápido de instalar mediante el gestor de paquetes npm y se compone de 3 elementos (imágenes o cadenas de texto). Este plugin ofrece una opción sencilla de implementar y adaptar en cualquier proyecto creado con VueJS con distintas opciones de configuración detalladas a continuación. 

Instalación

  1. npm install custom-banner-vue

Importar globalmente (main.js o similar)

  1. import CustomBannerVue from 'custom-banner-vue';
  2. Vue.use(CustomBannerVue);

 Importar localmente (componente)

  1. import { CustomBannerVue } from 'custom-banner-vue';
  2. ...
  3. export default {
  4. ...
  5. components: {
  6. CustomBannerVue,
  7. }
  8. }


Añadir componente en el template

  1. <template>
  2. <div>
  3. <custom-banner-vue :options="options"></custom-banner-vue>
  4. </div>
  5. </template>

Opciones de Configuración

  • Orientación

2 opciones de orientación: horizontal y vertical. Horizontal es la opción establecida por defecto.

  • Dimensiones

2 opciones: min o medium. Medium es la opción establecida por defecto. 

  • Orden de animaciones

Permite establecer la cantidad de animaciones y la combinación de elementos que realizan la rotación.

  • Transiciones

6 posibles transiciones:

width, height, top, left, rotate y opacity. La transición de opacidad es posible establecerla simultáneamente con cualquiera de las otras.

  • Tiempo

Tiempo establecido entre cada transición.

  • Imágenes y textos

3 opciones de enlace de imágenes:

  1. externa: ruta absoluta
  2. assets
  3. public


Ejemplo básico con imágenes

  1. ...
  2. data() {
  3. return {
  4. options:{
  5. orientation:"horizontal",
  6. images:[
  7. //folder public
  8. [
  9. "img/image1.jpg",
  10. "img/image2.jpg",
  11. "img/image3.jpg"
  12. ],
  13. //folder assets
  14. [
  15. require("@/assets/img/image1.jpg"),
  16. require("@/assets/img/image2.jpg"),
  17. require("@/assets/img/image3.png")
  18. ],
  19. //absolute path
  20. [
  21. "http://www.server/image1.jpg",
  22. "http://www.server/image2.jpg",
  23. "http://www.server/image3.jpg"
  24. ]
  25. ],
  26. }
  27. }
  28. },
  29. ....


Ejemplo básico con textos 

  1. ...
  2. options:{
  3. orientation:"vertical",
  4. texts:[
  5. [
  6. "Regístrese ahora y obtendrá",
  7. "un cupón de descuento de 5€",
  8. "en su próxima compra"
  9. ],
  10. [
  11. "Si desea más información",
  12. "póngase en contacto con uno",
  13. "de nuestro asesores llamando al 606060606"
  14. ],
  15. [
  16. "Welcome to mydomain.com",
  17. "browse the different sections"
  18. ]
  19. ],
  20. effects:{
  21. 1:{
  22. modeText:true
  23. },
  24. 2:{
  25. modeText:true
  26. },
  27. 3:{
  28. modeText:true
  29. }
  30. }
  31. }
  32. ...

Nota: Para activar los textos es necesario establecer el valor de la opción modeText a true  en cada elemento.


Ejemplo de configuración de orden y transiciones

  1. ...
  2. options:{
  3. orientation:"vertical",
  4. size:"min",
  5. images:[
  6. [
  7. "img/image1.jpg",
  8. "img/image2.jpg",
  9. "img/image3.jpg"
  10. ],
  11. [
  12. "img/image1.png",
  13. "img/image2.png",
  14. "img/image3.png"
  15. ],
  16. [
  17. "http://www.server/image1.jpg",
  18. "http://www.server/image2.jpg",
  19. "http://www.server/image3.jpg"
  20. ]
  21. ],
  22. effects:{
  23. 1:{
  24. opacity:true,
  25. width:true,
  26. },
  27. 2:{
  28. top:true
  29. },
  30. 3:{
  31. rotate:true
  32. }
  33. },
  34. order:{
  35. 0:[1,3],
  36. 1:[2],
  37. 2:[3],
  38. 3:[1,2,3]
  39. ...
  40. ...
  41. }
  42. },
  43. ...


Ejemplo de imágenes y textos

  1. ...
  2. options:{
  3. orientation:"vertical",
  4. size:"min",
  5. images:[
  6. [
  7. "img/image1.jpg",
  8. "img/image2.jpg",
  9. "img/image3.jpg"
  10. ],
  11. [
  12. "img/image1.png",
  13. "img/image2.png",
  14. "img/image3.png"
  15. ],
  16. [
  17. "http://www.server/image1.jpg",
  18. "http://www.server/image2.jpg",
  19. "http://www.server/image3.jpg"
  20. ]
  21. ],
  22. texts:[
  23. [
  24. "Welcome to mydomain.com",
  25. "browse the different sections"
  26. ],
  27. [],
  28. []
  29. ],
  30. effects:{
  31. 1:{
  32. opacity:true,
  33. width:true,
  34. modeText:true
  35. },
  36. 2:{
  37. left:true
  38. },
  39. 3:{
  40. opacity:true
  41. }
  42. },
  43. },
  44. ...

Otras opciones de configuración

widthHTML: La opción widthHTML permite establecer un ancho fijo de las imágenes de cada elemento

  1. ...
  2. effects:{
  3. 1:{
  4. opacity:true,
  5. width:true,
  6. widthHTML:120,
  7. },
  8. 2:{
  9. left:true
  10. modeText:true,
  11. },
  12. 3:{
  13. opacity:true
  14. }
  15. },
  16. ...

fontSizeStyle: La opción fontSizeStyle permite asignar un tamaño  de texto fijo de los textos de cada elemento.

  1. ...
  2. effects:{
  3. 1:{
  4. opacity:true,
  5. width:true,
  6. },
  7. 2:{
  8. left:true
  9. modeText:true,
  10. fontSizeStyle:"20px",
  11. },
  12. 3:{
  13. opacity:true
  14. }
  15. }
  16. ...

Este plugin permite establecer múltiples banners en un mismo componente, tan solo será necesario cambiar el nombre del objeto.

  1. <custom-banner-vue :options="options"></custom-banner-vue>
  2. ....
  3. <custom-banner-vue :options="options2"></custom-banner-vue>
  4. ...
  5. <custom-banner-vue :options="options3"></custom-banner-vue>

CSS

Es  posible modificar los estilos mediante las clases bh_banner, div_bannerimg_banner apoyándose en la declaración !important.

Nota: Este plugin se encuentra todavía en fase beta, si encuentra algún error o mejora puede comunicarse con el autor mediante la sección de contacto, en la parte superior de este blog. 

Puede acceder desde aquí a la publicación en  npmjs.com.

Comentarios: 0

Para poder comentar es necesario iniciar sesión



Este dominio utiliza cookies de terceros para crear estadísticas y publicidad personalizada. Si continúa navegando está aceptando su uso