Slick Slider
Slick Slider is the most modern free mobile touch slider with hardware accelerated transitions and amazing native behavior For more details
Installing via npm
npm i slick-carousel
Example Code
<template>
<!-- Testimonial Thumbs 1 -->
<div ref="testimonialThumbs1" class="testimonial-thumbs1" data-thumb1-slide="3" data-tablet="2" data-mobile="2"
data-mobile-sm="1" :data-center="dataCenter">
<div v-for="(image, index) in testimonialImages" :key="index" class="text-center justify-content-center d-flex">
<img alt="image-testimonial" :src="generateImgPath(image)" />
</div>
</div>
<!-- Testimonial Descriptions -->
<div class="testimonial-top">
<div :class="`${textDesc}`">
<p :class="`testimonial-desc ${FontSize} fw-normal ${textCenter === true ? 'text-center' : ''} fst-italic`">
Velocity is crucial in marketing. The campaigns we can put together, the more pages we can
create, the bigger we feel, and the more touch points we have with customers.
</p>
</div>
<div :class="`${textDesc}`">
<p :class="`testimonial-desc ${FontSize} fw-normal ${textCenter === true ? 'text-center' : ''} fst-italic`">
Simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s
standard dummy text ever since the 1500s, when an unknown printer took a galley.
</p>
</div>
<div :class="`${textDesc}`">
<p :class="`testimonial-desc ${FontSize} fw-normal ${textCenter === true ? 'text-center' : ''} fst-italic`">
Simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard
dummy text ever since the 1500s, when an unknown printer took a galley.</p>
</div>
<div :class="`${textDesc}`">
<p :class="`testimonial-desc ${FontSize} fw-normal ${textCenter === true ? 'text-center' : ''} fst-italic`">
Dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy
text ever since the 1500s, when an unknown.</p>
</div>
<div :class="`${textDesc}`">
<p :class="`testimonial-desc ${FontSize} fw-normal ${textCenter === true ? 'text-center' : ''} fst-italic`">
Text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text
ever since the 1500s, when an unknown printer took a gallery .</p>
</div>
<div :class="`${textDesc}`">
<p :class="`testimonial-desc ${FontSize} fw-normal ${textCenter === true ? 'text-center' : ''} fst-italic`">
Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's
standard dummy text ever since the 1500s, when an unknown printer.</p>
</div>
</div>
<!-- Testimonial Thumbs 2 -->
<div v-if="mediaServices" ref="testimonialThumbs2" class="testimonial-thumbs2 testimonial-dots"
data-thumb2-slide="1" data-tablet="1" data-mobile="1" data-mobile-sm="1">
<div v-for="(author, index) in testimonialAuthors" :key="index" class="slick-slide">
<div class="testimonial-avtar d-flex gap-3">
<img alt="img-testimonial" class="img-fluid center-block img-testimonial-1"
:src="generateImgPath(author.image)" />
<div class="author">
<h5 class="title mb-2"></h5>
<span class="designation"></span>
</div>
</div>
</div>
</div>
<div v-else ref="testimonialThumbs2" class="testimonial-thumbs2" data-thumb2-slide="5" data-tablet="2"
data-mobile="2" data-mobile-sm="1">
<div v-for="(author, index) in testimonialAuthors" :key="index" class="slick-slide">
<div class="testimonial-avtar d-flex justify-content-center gap-3">
<img alt="img-testimonial" class="img-fluid center-block img-testimonial"
:src="generateImgPath(author.image)" />
<div class="author">
<h5 class="title mb-2"></h5>
<span class="designation"></span>
</div>
</div>
</div>
</div>
</template>
Script
<script setup>
import { ref, onMounted } from 'vue';
import $ from 'jquery';
import 'slick-carousel/slick/slick.css';
import 'slick-carousel/slick/slick-theme.css';
import 'slick-carousel';
const generateImgPath = (path) => {
return window.origin + import.meta.env.BASE_URL + path;
};
const props = defineProps({
dataCenter: { type: Boolean, default: true },
textDesc: { type: String, default: '' },
FontSize: { type: String, default: '' },
textCenter: { type: Boolean, default: false },
mediaServices: { type: Boolean, default: false }
})
const testimonialImages = ref([
'/assets/images/testimonial/testi-icon-05.png',
'/assets/images/testimonial/testi-icon-03.png',
'/assets/images/testimonial/testi-icon-04.png',
'/assets/images/testimonial/testi-icon-02.png',
'/assets/images/testimonial/testi-icon-01.png',
'/assets/images/testimonial/testi-icon-07.png',
]);
const testimonialAuthors = ref([
{ name: 'Jason Roger', designation: 'Designer', image: '/assets/images/testimonial/author-5.png' },
{ name: 'Jennifer Walker', designation: 'Designer', image: '/assets/images/testimonial/author-1.png' },
{ name: 'JD Scot', designation: 'Designer', image: '/assets/images/testimonial/author-4.png' },
{ name: 'Fitt Morgan', designation: 'Designer', image: '/assets/images/testimonial/author-3.png' },
{ name: 'Nik Jorden', designation: 'Designer', image: '/assets/images/testimonial/author-2.png' },
{ name: 'Julia Cooper', designation: 'Designer', image: '/assets/images/testimonial/author-6.png' },
]);
const testimonialThumbs1 = ref(null);
const testimonialThumbs2 = ref(null);
function callTestimonialSlick() {
// Testimonial Thumbs 1
$(testimonialThumbs1.value).slick({
slidesToShow: $(testimonialThumbs1.value).data("thumb1-slide"),
slidesToScroll: 1,
centerMode: $(testimonialThumbs1.value).data("center"),
infinite: true,
vertical: false,
arrows: false,
asNavFor: ".testimonial-top, .testimonial-thumbs2",
focusOnSelect: true,
draggable: true,
responsive: [
{
breakpoint: 1024,
settings: {
vertical: false,
centerMode: false,
slidesToShow: $(testimonialThumbs1.value).data("tablet"),
},
},
{
breakpoint: 767,
settings: {
vertical: false,
centerMode: false,
slidesToShow: $(testimonialThumbs1.value).data("mobile"),
},
},
{
breakpoint: 479,
settings: {
vertical: false,
slidesPerRow: 1,
centerMode: false,
slidesToShow: $(testimonialThumbs1.value).data("mobile-sm"),
},
},
],
});
// Testimonial Thumbs 2
$(testimonialThumbs2.value).slick({
slidesToShow: $(testimonialThumbs2.value).data("thumb2-slide"),
slidesToScroll: 1,
centerMode: true,
arrows: false,
dots: true,
draggable: true,
infinite: true,
asNavFor: ".testimonial-top, .testimonial-thumbs1",
focusOnSelect: true,
responsive: [
{
breakpoint: 1024,
settings: {
vertical: false,
centerMode: false,
slidesToShow: $(testimonialThumbs2.value).data("tablet"),
},
},
{
breakpoint: 767,
settings: {
vertical: false,
centerMode: false,
slidesToShow: $(testimonialThumbs2.value).data("mobile"),
},
},
{
breakpoint: 479,
settings: {
vertical: false,
slidesPerRow: 1,
centerMode: false,
slidesToShow: $(testimonialThumbs2.value).data("mobile-sm"),
},
},
],
});
// Testimonial Top
$(".testimonial-top").slick({
autoplay: false,
slidesPerRow: 1,
slidesToShow: 1,
asNavFor: ".testimonial-thumbs1, .testimonial-thumbs2",
arrows: false,
draggable: true,
responsive: [
{
breakpoint: 767,
settings: {
vertical: false,
fade: true,
},
},
],
});
}
onMounted(() => {
callTestimonialSlick();
});
</script>