2
2
< html lang ="en ">
3
3
< head >
4
4
< meta charset ="UTF-8 ">
5
+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0 ">
5
6
< title > Script Hook Goat</ title >
6
7
<!-- Google tag (gtag.js) -->
7
8
< script async src ="https://www.googletagmanager.com/gtag/js?id=G-YHT7S9LGC3 "> </ script >
8
9
< script >
9
- window . dataLayer = window . dataLayer || [ ] ;
10
- function gtag ( ) { dataLayer . push ( arguments ) ; }
11
- gtag ( 'js' , new Date ( ) ) ;
12
-
13
- gtag ( 'config' , 'G-YHT7S9LGC3' ) ;
10
+ window . dataLayer = window . dataLayer || [ ] ;
11
+ function gtag ( ) { dataLayer . push ( arguments ) ; }
12
+ gtag ( 'js' , new Date ( ) ) ;
13
+ gtag ( 'config' , 'G-YHT7S9LGC3' ) ;
14
14
</ script >
15
+ <!-- Font Awesome图标库 -->
16
+ < link rel ="stylesheet " href ="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css ">
15
17
< style >
16
18
/* 全局样式 */
17
- body {
18
- font-family : Arial, sans-serif;
19
+ * {
19
20
margin : 0 ;
20
21
padding : 0 ;
21
- background : linear-gradient (135deg , # 4facfe, # 00f2fe ); /* 渐变色背景(蓝绿色系) */
22
+ box-sizing : border-box;
23
+ }
24
+
25
+ body {
26
+ font-family : Arial, sans-serif;
27
+ overflow-x : hidden;
22
28
color : white;
29
+ }
30
+
31
+ /* 导航栏样式 */
32
+ .navbar {
33
+ position : fixed;
34
+ top : 0 ;
35
+ left : 0 ;
36
+ width : 100% ;
37
+ background-color : rgba (0 , 0 , 0 , 0.7 );
38
+ backdrop-filter : blur (10px );
39
+ z-index : 1000 ;
40
+ padding : 15px 50px ;
23
41
display : flex;
24
- justify-content : center ;
42
+ justify-content : space-between ;
25
43
align-items : center;
44
+ }
45
+
46
+ .navbar .logo {
47
+ font-size : 1.5rem ;
48
+ font-weight : bold;
49
+ }
50
+
51
+ .navbar .nav-links {
52
+ display : flex;
53
+ gap : 20px ;
54
+ }
55
+
56
+ .navbar .nav-links a {
57
+ color : white;
58
+ text-decoration : none;
59
+ font-size : 1rem ;
60
+ transition : color 0.3s ease;
61
+ }
62
+
63
+ .navbar .nav-links a : hover {
64
+ color : # 4facfe ;
65
+ }
66
+
67
+ .github-container {
68
+ display : flex;
69
+ align-items : center;
70
+ gap : 15px ;
71
+ }
72
+
73
+ .github-link {
74
+ display : flex;
75
+ align-items : center;
76
+ gap : 5px ;
77
+ color : white;
78
+ text-decoration : none;
79
+ transition : color 0.3s ease;
80
+ }
81
+
82
+ .github-link : hover {
83
+ color : # 4facfe ;
84
+ }
85
+
86
+ .github-logo {
87
+ font-size : 1.5rem ;
88
+ }
89
+
90
+ .star-count {
91
+ background-color : rgba (255 , 255 , 255 , 0.2 );
92
+ padding : 3px 10px ;
93
+ border-radius : 20px ;
94
+ font-size : 0.8rem ;
95
+ }
96
+
97
+ /* 页脚样式 */
98
+ .footer {
99
+ position : fixed;
100
+ bottom : 0 ;
101
+ left : 0 ;
102
+ width : 100% ;
103
+ background-color : rgba (0 , 0 , 0 , 0.7 );
104
+ backdrop-filter : blur (10px );
105
+ padding : 15px 50px ;
106
+ text-align : center;
107
+ z-index : 1000 ;
108
+ }
109
+
110
+ .footer p {
111
+ font-size : 0.9rem ;
112
+ color : rgba (255 , 255 , 255 , 0.7 );
113
+ }
114
+
115
+ /* 屏幕样式 */
116
+ .screen {
26
117
height : 100vh ;
118
+ width : 100vw ;
119
+ display : flex;
27
120
flex-direction : column;
121
+ justify-content : center;
122
+ align-items : center;
123
+ padding : 80px 20px ; /* 为导航栏和页脚留出空间 */
124
+ scroll-snap-align : start;
28
125
}
29
-
126
+
127
+ .screen-container {
128
+ scroll-snap-type : y mandatory;
129
+ overflow-y : scroll;
130
+ height : 100vh ;
131
+ }
132
+
133
+ /* 第一屏样式 */
134
+ .screen-1 {
135
+ background : linear-gradient (135deg , # 4facfe, # 00f2fe );
136
+ }
137
+
138
+ /* 第二屏样式 */
139
+ .screen-2 {
140
+ background : linear-gradient (135deg , # 43e97b, # 38f9d7 );
141
+ }
142
+
30
143
/* 标题样式 */
31
144
h1 {
32
145
font-size : 3rem ;
33
- margin-bottom : 20 px ;
34
- text-shadow : 2px 2px 4px rgba (0 , 0 , 0 , 0.3 ); /* 文字阴影 */
35
- animation : float 3s ease-in-out infinite; /* 浮动特效 */
146
+ margin-bottom : 30 px ;
147
+ text-shadow : 2px 2px 4px rgba (0 , 0 , 0 , 0.3 );
148
+ animation : float 3s ease-in-out infinite;
36
149
}
37
-
150
+
38
151
@keyframes float {
39
152
0% , 100% {
40
153
transform : translateY (0 );
43
156
transform : translateY (-10px );
44
157
}
45
158
}
46
-
159
+
47
160
/* 列表样式 */
48
161
ol {
49
162
list-style-type : none;
50
163
padding : 0 ;
51
164
}
52
-
165
+
53
166
/* 链接样式 */
54
- a {
167
+ . screen a {
55
168
text-decoration : none;
56
169
color : white;
57
170
font-size : 1.5rem ;
63
176
transition : background 0.3s ease, transform 0.3s ease, border-color 0.3s ease;
64
177
display : inline-block;
65
178
}
66
-
67
- a : hover {
179
+
180
+ . screen a : hover {
68
181
background : rgba (255 , 255 , 255 , 0.2 );
69
182
border-color : rgba (255 , 255 , 255 , 0.4 );
70
- transform : scale (1.05 ); /* 鼠标悬停时放大 */
183
+ transform : scale (1.05 );
71
184
}
72
-
185
+
186
+ /* 加群信息样式 */
187
+ .join-group {
188
+ text-align : center;
189
+ max-width : 800px ;
190
+ background : rgba (255 , 255 , 255 , 0.1 );
191
+ padding : 30px ;
192
+ border-radius : 15px ;
193
+ backdrop-filter : blur (5px );
194
+ border : 2px solid rgba (255 , 255 , 255 , 0.2 );
195
+ }
196
+
197
+ .join-group h2 {
198
+ margin-bottom : 20px ;
199
+ font-size : 2.2rem ;
200
+ }
201
+
202
+ .join-group p {
203
+ font-size : 1.2rem ;
204
+ margin-bottom : 20px ;
205
+ line-height : 1.6 ;
206
+ }
207
+
208
+ .qr-code {
209
+ max-width : 200px ;
210
+ margin : 20px auto;
211
+ display : block;
212
+ border : 5px solid white;
213
+ border-radius : 10px ;
214
+ }
215
+
216
+ .join-button {
217
+ display : inline-block;
218
+ padding : 12px 30px ;
219
+ background : rgba (255 , 255 , 255 , 0.2 );
220
+ color : white;
221
+ text-decoration : none;
222
+ border-radius : 30px ;
223
+ font-size : 1.1rem ;
224
+ margin-top : 20px ;
225
+ transition : all 0.3s ease;
226
+ border : 2px solid rgba (255 , 255 , 255 , 0.3 );
227
+ }
228
+
229
+ .join-button : hover {
230
+ background : rgba (255 , 255 , 255 , 0.3 );
231
+ transform : translateY (-3px );
232
+ box-shadow : 0 10px 20px rgba (0 , 0 , 0 , 0.1 );
233
+ }
234
+
73
235
/* 响应式设计 */
74
- @media (max-width : 600px ) {
236
+ @media (max-width : 768px ) {
237
+ .navbar {
238
+ padding : 15px 20px ;
239
+ }
240
+
75
241
h1 {
76
242
font-size : 2rem ;
77
243
}
78
- a {
79
- font-size : 1.2rem ;
80
- padding : 8px 16px ;
244
+
245
+ .screen a , .join-group p {
246
+ font-size : 1.1rem ;
247
+ }
248
+
249
+ .join-group h2 {
250
+ font-size : 1.8rem ;
251
+ }
252
+
253
+ .github-container {
254
+ gap : 5px ;
255
+ }
256
+ }
257
+
258
+ @media (max-width : 480px ) {
259
+ .navbar .nav-links {
260
+ display : none;
81
261
}
82
262
}
83
263
</ style >
84
264
</ head >
85
265
< body >
86
- < h1 > Goat List</ h1 >
87
- < ol >
88
- < li > < a href ="jsonp-request-encrypt.html "> Script请求参数加密</ a > </ li >
89
- < li > < a href ="jsonp-response-encrypt.html "> Script请求响应加密</ a > </ li >
90
- < li > < a href ="jsonp-request-encrypt-and-response-encrypt.html "> Script请求参数和响应同时加密</ a > </ li >
91
- </ ol >
266
+ <!-- 导航栏 -->
267
+ < div class ="navbar ">
268
+ < div class ="logo "> Script Hook Goat</ div >
269
+ < div class ="nav-links ">
270
+ < a href ="#screen-1 "> 首页</ a >
271
+ < a href ="#screen-2 "> 加入我们</ a >
272
+ </ div >
273
+ < div class ="github-container ">
274
+ < a href ="https://github.com/JSREI/js-script-hook-goat " class ="github-link " target ="_blank ">
275
+ < i class ="fab fa-github github-logo "> </ i >
276
+ < span class ="star-count " id ="star-count "> -</ span >
277
+ </ a >
278
+ </ div >
279
+ </ div >
280
+
281
+ <!-- 分屏容器 -->
282
+ < div class ="screen-container ">
283
+ <!-- 第一屏:当前内容 -->
284
+ < div class ="screen screen-1 " id ="screen-1 ">
285
+ < h1 > Goat List</ h1 >
286
+ < ol >
287
+ < li > < a href ="jsonp-request-encrypt.html "> Script请求参数加密</ a > </ li >
288
+ < li > < a href ="jsonp-response-encrypt.html "> Script请求响应加密</ a > </ li >
289
+ < li > < a href ="jsonp-request-encrypt-and-response-encrypt.html "> Script请求参数和响应同时加密</ a > </ li >
290
+ </ ol >
291
+ </ div >
292
+
293
+ <!-- 第二屏:加群信息 -->
294
+ < div class ="screen screen-2 " id ="screen-2 ">
295
+ < div class ="join-group ">
296
+ < h2 > 加入我们的技术社区</ h2 >
297
+ < p > 欢迎加入我们的JavaScript逆向工程交流群,与其他开发者一起讨论技术、分享经验,共同进步。</ p >
298
+ < p > 扫描下方二维码或点击按钮加入:</ p >
299
+ <!-- 这里可以放置实际的二维码图片 -->
300
+ < img src ="https://placeholder-for-qrcode.com/200x200 " alt ="QR Code " class ="qr-code ">
301
+ < p > 或添加微信: < strong > JSREI-Group</ strong > </ p >
302
+ < a href ="https://github.com/JSREI " class ="join-button " target ="_blank "> 了解更多</ a >
303
+ </ div >
304
+ </ div >
305
+ </ div >
306
+
307
+ <!-- 页脚 -->
308
+ < div class ="footer ">
309
+ < p > © 2023-2024 JSREI | 版本 1.0.0 | < a href ="https://github.com/JSREI/js-script-hook-goat " style ="color: rgba(255, 255, 255, 0.7); " target ="_blank "> GitHub</ a > </ p >
310
+ </ div >
311
+
312
+ <!-- JavaScript -->
313
+ < script >
314
+ // 获取GitHub star数量
315
+ function fetchStarCount ( ) {
316
+ // 检查本地缓存
317
+ const cachedData = localStorage . getItem ( 'githubStarData' ) ;
318
+ if ( cachedData ) {
319
+ const data = JSON . parse ( cachedData ) ;
320
+ // 检查缓存是否在一小时内
321
+ if ( Date . now ( ) - data . timestamp < 3600000 ) {
322
+ document . getElementById ( 'star-count' ) . textContent = data . stars ;
323
+ return ;
324
+ }
325
+ }
326
+
327
+ // 如果没有缓存或缓存已过期,则获取新数据
328
+ fetch ( 'https://api.github.com/repos/JSREI/js-script-hook-goat' )
329
+ . then ( response => response . json ( ) )
330
+ . then ( data => {
331
+ const starCount = data . stargazers_count ;
332
+ document . getElementById ( 'star-count' ) . textContent = starCount ;
333
+
334
+ // 保存到本地缓存
335
+ localStorage . setItem ( 'githubStarData' , JSON . stringify ( {
336
+ stars : starCount ,
337
+ timestamp : Date . now ( )
338
+ } ) ) ;
339
+ } )
340
+ . catch ( error => {
341
+ console . error ( '无法获取Star数量:' , error ) ;
342
+ document . getElementById ( 'star-count' ) . textContent = 'N/A' ;
343
+ } ) ;
344
+ }
345
+
346
+ // 页面加载时获取star数量
347
+ document . addEventListener ( 'DOMContentLoaded' , fetchStarCount ) ;
348
+
349
+ // 平滑滚动
350
+ document . querySelectorAll ( 'a[href^="#"]' ) . forEach ( anchor => {
351
+ anchor . addEventListener ( 'click' , function ( e ) {
352
+ e . preventDefault ( ) ;
353
+ document . querySelector ( this . getAttribute ( 'href' ) ) . scrollIntoView ( {
354
+ behavior : 'smooth'
355
+ } ) ;
356
+ } ) ;
357
+ } ) ;
358
+ </ script >
92
359
</ body >
93
360
</ html >
0 commit comments