カード・UIパーツ系

Mosaic Flip Hover Gallery React

ホバーした項目の画像を、モザイク状の3Dタイルが中央から反転して見せるギャラリー演出です。

Y
Yutaka Kizaki
@junkbranding
2026年6月9日
読了時間: 6分
構成 / File Structure
</>Code Viewer
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178

はじめに

小さなタイルの集合として見せる hover ギャラリーです。

この記事では document.createElement() でタイルを組み立てる部分を React の JSX に置き換え、GSAP はタイルの rotateY と奥行きの揺れだけを担当する形にしています。

今回作るもの

  • 主役: 画像を分割して見せる3Dモザイクタイル
  • トリガー: リスト項目の hover / focus
  • 対象要素: 12 x 9 のタイルグリッド
  • 再利用先: Works一覧、ギャラリー、実績リンク、ポートフォリオのプレビュー

画像の切り出しは background-position で行います。タイルごとに --x--y を渡して、1枚の画像が分割されて見えるようにしています。

動きの組み立て

常時の動きは、各タイルの z を小さく揺らすだけです。これで静止画のグリッドに少しだけ奥行きが出ます。

hover 時は全タイルを rotateY で 180 度ずつ加算していきます。stagger.grid を使い、中心から外側へ反転が広がるようにしているのが見せ場です。

調整しやすい値

  • TILES_X: 横方向の分割数
  • TILES_Y: 縦方向の分割数
  • TILE_SIZE: 1タイルのサイズ
  • stagger.each: 反転が広がる速さ
  • duration: 1タイルの反転速度

画像は添付ファイル内のものではなく、Unsplash のフリー写真 URL に差し替えています。

タグ

ReactGSAPアニメーションHoverギャラリー

関連記事