-
BLOG
知る。残す。伝える。

とりあえずswiperを入れてみたかったのでcssは省略
※色々実験中なのですぐ消すかも
※Vercelで公開した
★Vercel関連過去記事
Nuxt.js+microCMS+Vercelで記事一覧と詳細ページを作成して公開して変更される度に(pushする度に)slackに通知させるまで
macOS Mojave 10.14.6
Nuxt.js v2.12.2
npm 6.14.5
(1)vue-awesome-swiperをインストール
(2)プラグインファイルを作成
(3)nuxt.config.jsにプラグイン追加
(4)ソース
npm install swiper vue-awesome-swiper –save
import Vue from 'vue'
import VueAwesomeSwiper from 'vue-awesome-swiper'
// import style
import 'swiper/css/swiper.css'
Vue.use(VueAwesomeSwiper, /* { default options with global component } */)
plugins: [
{ src: '~/plugins/vue-awesome-swiper', mode: 'client' }
],
【メモ】
Vueプラグインを使用する場合は「plugin」フォルダ内にてセットアップし、nuxt.config.jsに追加する必要がある
<template>
<div v-swiper:mySwiper="swiperOption">
<div class="swiper-wrapper">
<div class="swiper-slide" v-for="banner in banners">
<img :src="banner">
</div>
</div>
<div class="swiper-pagination"></div>
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
</div>
</template>
<script>
export default {
data () {
return {
banners: [
require('~/assets/images/img01.png'),
require('~/assets/images/img02.png'),
require('~/assets/images/img03.png'),
],
swiperOption: {
loop: true,
slidesPerView: 3,
spaceBetween: 30,
autoplay: {
delay: 1000
},
loop: true,
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev'
},
pagination: {
el: '.swiper-pagination'
},
// ...
}
}
},
mounted() {
console.log('Current Swiper instance object', this.mySwiper)
this.mySwiper.slideTo(3, 1000, false)
}
}
</script>
【メモ】
◎Nuxt.jsの場合、画像のパスの指定方法が場所によって違うよう。(詰んだ)
assetsフォルダ内の場合は「require(‘~/assets/images/img01.png’)」としなければならない
◎画像をループさせずに並べる方法もあるようだが、Vueをなるべく使いたかったので「v-for」で画像を並べた
◎「mounted()」はelementが読み込まれてから実行される
湿気ゴイス
© Copyright 2024 NIAR All rights reserved.