前回に続き、次はサイトトップで実装しているカルーセルについて。
Photographyでは<li>を反復させているものをvue-carouselプラグインをインポートして<slide>を反復するように変更するのみです。
その際、slideとcarouselがうまく行かないことがあるので
nuxt.jsにvue-carouselを導入してスライダーを作成
Nuxtでvue-carouselを使用していたら’ReferenceError: window is not defined’が出たお話
などなど参考に別途インポートすると動くと思われます。
実際のコードのサンプルは以下
<template> <carousel :navigation-enabled="true" :per-page="1" :loop="true" :scrollPerPage="true" :autoplay="true" :autoplayHoverPause="true" :autoplayTimeout="5000" :paginationPadding="4"> <slide v-for="(photo, index) in data['photo']" :key="photo.id"> <img :data-src="photo['url_l']" :width="photo['width_l']" :height="photo['height_l']" :alt="photo['title']" v-lazy-load> </slide> </carousel> </template> <script> import Carousel from '~/components/vue-carousel/Carousel.vue' import Slide from '~/components/vue-carousel/Slide.vue' export default { components: { Carousel, Slide }, data() { return { data:{} } }, async mounted() { const url = 'https://www.flickr.com/services/rest/?{{flickrAPI}}; const data = await this.$jsonp(url, { callbackName: 'getWall' }); return this.data = data.photoset; }, } </script>...

