回答編集履歴

1

コメントを受けて追記

2020/03/30 06:34

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア36960

test CHANGED
@@ -19,3 +19,131 @@
19
19
  <script type="text/javascript" src="https://unpkg.com/masonry-layout@4/dist/masonry.pkgd.min.js"></script>
20
20
 
21
21
  ```
22
+
23
+
24
+
25
+ ### コメントを受けて追記
26
+
27
+
28
+
29
+ コードを見た感じ、おそらく、1つ目のスクリプトが重複しており必要ないように思えました。
30
+
31
+ そして、2つ目のスクリプトは、ロードイベントの処理がされていませんでした。1つ目と同様にロードイベント後に処理するようにした方がよいと思います。
32
+
33
+
34
+
35
+ つまり、以下のようにしてください。
36
+
37
+
38
+
39
+ ---
40
+
41
+
42
+
43
+ ```HTML
44
+
45
+ <script>
46
+
47
+ $(function(){
48
+
49
+ var $grid = $('.grid');
50
+
51
+ $grid.masonry({
52
+
53
+ itemSelector: 'none',
54
+
55
+ columnWidth: '.grid__item',
56
+
57
+ gutter: 20,
58
+
59
+ stagger: 30,
60
+
61
+ percentPosition: true,
62
+
63
+ visibleStyle: { transform: 'translateY(0)', opacity: 1 },
64
+
65
+ hiddenStyle: { transform: 'translateY(100px)', opacity: 0 },
66
+
67
+ });
68
+
69
+
70
+
71
+ var msnry = $grid.data('masonry');
72
+
73
+
74
+
75
+ $grid.imagesLoaded(function() {
76
+
77
+ $grid.masonry( 'option', { itemSelector: '.grid__item' });
78
+
79
+ var $items = $grid.find('.grid__item');
80
+
81
+ $grid.masonry( 'appended', $items );
82
+
83
+ });
84
+
85
+
86
+
87
+ var nextSlugs = [
88
+
89
+ 'page2.html',
90
+
91
+ 'page3.html'
92
+
93
+ ];
94
+
95
+
96
+
97
+ function getPath() {
98
+
99
+ var slug = nextSlugs[ this.loadCount ];
100
+
101
+ if( slug ) {
102
+
103
+ return 'https://www.miso.blog/demo/masonry_infinitescroll/';
104
+
105
+ }
106
+
107
+ }
108
+
109
+
110
+
111
+ $grid.infiniteScroll({
112
+
113
+ path: getPath,
114
+
115
+ append: '.grid__item',
116
+
117
+ outlayer: msnry,
118
+
119
+ scrollThreshold: 40,
120
+
121
+ hideNav: '.pagination',
122
+
123
+ status: '.page-load-status',
124
+
125
+ });
126
+
127
+ });
128
+
129
+ </script>
130
+
131
+ ```
132
+
133
+
134
+
135
+ を削除し、スクリプトを
136
+
137
+
138
+
139
+ ```js
140
+
141
+ $(function(){
142
+
143
+ });
144
+
145
+ ```
146
+
147
+
148
+
149
+ で囲う。