teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

コードを追記しました

2021/01/21 05:33

投稿

asasaas
asasaas

スコア26

title CHANGED
File without changes
body CHANGED
@@ -3,4 +3,98 @@
3
3
 
4
4
  いくつかの部分にtransitionを付けてみたのですがいづれも反映されませんでした.
5
5
  これは,パスの変更が発生しないのでtransitionが発生しないという認識であっているのでしょうか.
6
- また,遷移アニメーションを付ける方法があればお伺いしたいです.
6
+ また,遷移アニメーションを付ける方法があればお伺いしたいです.
7
+
8
+ 追記
9
+ 記事データはCMSであるcontentfulから取得しています.
10
+
11
+ ```vue
12
+ //index.vue
13
+
14
+ <template>
15
+ <div>
16
+ <section class="p-posts">
17
+ <Card
18
+ v-for="post in pagePosts"
19
+ :key="post.fields.slug"
20
+ :title="post.fields.title"
21
+ :slug="post.fields.slug"
22
+ :header-image="post.fields.headerImage"
23
+ :published-at="post.fields.publishedAt"
24
+ :tag="post.fields.tag.fields.tag"
25
+ :tag-slug="post.fields.tag.fields.tagSlug"
26
+ />
27
+ </section>
28
+ <article class="pagination">
29
+ <v-pagination
30
+ v-model="page"
31
+ :length="length"
32
+ :circle="true"
33
+ color="#00aca3"
34
+ @input = "pageChange"
35
+ />
36
+ </article>
37
+ </div>
38
+ </template>
39
+
40
+ <script>
41
+ import { createClient } from "~/plugins/contentful.js";
42
+
43
+ const client = createClient();
44
+ export default {
45
+ transition: "fade",
46
+ data () {
47
+ return {
48
+ page: 1,
49
+ pagePosts: [],
50
+ pageSize: 6,
51
+ length:0,
52
+ }
53
+ },
54
+ async asyncData({ env, params }) {
55
+ return await client
56
+ .getEntries({
57
+ content_type: env.CTF_BLOG_POST_TYPE_ID,
58
+ order: "-fields.publishedAt",
59
+ })
60
+ .then(entries => {
61
+ return {
62
+ posts: entries.items
63
+ };
64
+ })
65
+ .catch(console.error);
66
+ },
67
+ mounted: function(){
68
+ this.posts
69
+ this.pagePosts = this.posts.slice(0,this.pageSize)
70
+ this.length = Math.ceil(this.posts.length/this.pageSize);
71
+ },
72
+ methods: {
73
+ pageChange: function(pageNumber){
74
+ this.pagePosts = this.posts.slice(this.pageSize*(pageNumber -1), this.pageSize*(pageNumber))
75
+ },
76
+ },
77
+ };
78
+ </script>
79
+
80
+ <style>
81
+ .fade-enter-active,
82
+ .fade-leave-active {
83
+ transition: all .5s ease-out;
84
+ }
85
+
86
+ .fade-enter,
87
+ .fade-leave-to {
88
+ opacity: 0;
89
+ }
90
+
91
+ .fade-enter {
92
+ transform: translateY(15px);
93
+ }
94
+
95
+ .pagination {
96
+ margin-top: 64px;
97
+ }
98
+ </style>
99
+
100
+ ```