Slider

<div class="vue-slider" data-slider='{"slides":[{"component":"div"},{"component":"div"}]}'></div>
{% set icon = getIcon('nav-arrow-left') %}
{% set icon = getIcon('nav-arrow-right') %}
<div class="vue-slider" data-slider='{{ {slides: slides} | json_encode }}'></div>
{
  "slides": [
    {
      "component": "div"
    },
    {
      "component": "div"
    }
  ]
}
  • Content:
    ---
    title: Slider
    ---
    
    ## ACF
    
    No description
    
    Fields
    slides -> repeater
    
    
    
  • URL: /components/raw/slider/slider.md
  • Filesystem Path: resources/Views/Molecules/slider/slider.md
  • Size: 75 Bytes
  • Content:
    .slider {
    
    
    /* CHILDREN */
    
    
    /* /CHILDREN */
    
    }
    
  • URL: /components/raw/slider/slider.scss
  • Filesystem Path: resources/Views/Molecules/slider/slider.scss
  • Size: 48 Bytes
  • Content:
    <template>
      <Swiper
        tag="section"
        :modules="modules"
        :breakpoints="breakpoints"
        slides-per-view="3.2"
        @swiper="onSwiper"
        @breakpoint="onBreakpoint"
      >
        <SwiperSlide v-for="slide in slides" :key="slide">
          <component :is="slide.component" :data="slide"/>
        </SwiperSlide>
    
          <nav
            class="flex justify-center"
            v-if="!hideNavigation && swiper && slides && slides.length > currentSlidesPerView"
          >
            <CustomButton
              icon_class="inline-block"
              icon_left="nav-arrow-left"
              :className="'x-btn--white x-btn--icon-only' + (swiper && swiper.isBeginning ? ' x-btn--ghost--disabled' : '')"
              @click="!swiper.isBeginning && swiper.slidePrev()"
            />
            <CustomButton
              icon_class="inline-block"
              icon_left="nav-arrow-right"
              :className="'x-btn--white x-btn--icon-only ml-2' + (swiper && swiper.isEnd ? ' x-btn--ghost--disabled' : '')"
              @click="!swiper.isEnd && swiper.slideNext()"
            />
          </nav>
      </Swiper>
    </template>
    
    <script>
    import { Swiper, SwiperSlide } from 'swiper/vue';
    import { Navigation } from 'swiper';
    
    import 'swiper/css';
    import 'swiper/css/navigation';
    
    import CustomButton from '../../Atoms/button/button.vue';
    export default {
      components: {
        Swiper,
        SwiperSlide,
        CustomButton
      },
      props: {
        slides: {
          type: Array
        },
        wrapAround: {
          type: Boolean,
          default: true
        },
        className: {
          type: String
        },
        breakpoints: {
          type: Object,
        },
        hideNavigation: {
          type: Boolean,
          default: false,
        },
        hidePagination: {
          type: Boolean,
          default: false,
        }
      },
      data: () => {
        return {
          swiper: null,
          currentSlidesPerView: 0
        }
      },
      computed: {
    
      },
      methods: {
        onSwiper(swiper) {
          this.swiper = swiper;
        },
        onBreakpoint(swiper, breakpointParams){
          this.currentSlidesPerView = breakpointParams.slidesPerView
        }
      },
      setup() {
        return {
          modules: [Navigation],
        };
      },
    }
    </script>
    <style>
      .swiper-wrapper {
        @apply h-auto;
      }
    </style>
  • URL: /components/raw/slider/slider.vue
  • Filesystem Path: resources/Views/Molecules/slider/slider.vue
  • Size: 2.1 KB

No notes defined.