Lashtw commited on
Commit
45c534a
·
verified ·
1 Parent(s): 9001c24

Upload 8 files

Browse files
Files changed (1) hide show
  1. src/views/InstructorView.js +16 -5
src/views/InstructorView.js CHANGED
@@ -250,14 +250,18 @@ export function setupInstructorEvents() {
250
  const cards = container.querySelectorAll('.group\\/card');
251
 
252
  cards.forEach(card => {
 
 
 
 
253
  // Random Emoji
254
  const emoji = emojis[Math.floor(Math.random() * emojis.length)];
255
  const emojiEl = document.createElement('div');
256
  emojiEl.textContent = emoji;
257
- // Updated Position: Top-Right, Smaller, Overlapping
258
- emojiEl.className = 'absolute -top-3 -right-3 text-2xl animate-bounce z-50 drop-shadow-md';
259
  emojiEl.style.animationDuration = '0.6s';
260
- card.appendChild(emojiEl);
261
 
262
  // Remove after 3s
263
  setTimeout(() => emojiEl.remove(), 3000);
@@ -316,9 +320,16 @@ export function setupInstructorEvents() {
316
 
317
  // 1. Container for Relative Positioning
318
  const relativeContainer = document.createElement('div');
319
- relativeContainer.className = 'relative w-full h-[600px] md:h-[700px] overflow-hidden rounded-3xl bg-gray-900/50 border border-gray-700/30 shadow-inner';
320
  container.appendChild(relativeContainer);
321
 
 
 
 
 
 
 
 
322
  // 2. Instructor Section (Absolute Center)
323
  const instructorSection = document.createElement('div');
324
  instructorSection.className = 'absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 flex flex-col items-center justify-center z-20 group cursor-pointer';
@@ -425,7 +436,7 @@ export function setupInstructorEvents() {
425
  </div>
426
 
427
  <!-- Monster Image -->
428
- <div class="relative w-20 h-20 md:w-24 md:h-24 flex items-center justify-center transform group-hover/card:scale-125 transition-transform duration-300" style="animation: float 3s ease-in-out infinite; animation-delay: -${floatDelay}s;">
429
  <div class="w-full h-full pixel-art drop-shadow-md filter group-hover/card:brightness-110 transition-all">
430
  ${generateMonsterSVG(monster)}
431
  </div>
 
250
  const cards = container.querySelectorAll('.group\\/card');
251
 
252
  cards.forEach(card => {
253
+ // Find the monster image container
254
+ const imgContainer = card.querySelector('.monster-img-container');
255
+ if (!imgContainer) return;
256
+
257
  // Random Emoji
258
  const emoji = emojis[Math.floor(Math.random() * emojis.length)];
259
  const emojiEl = document.createElement('div');
260
  emojiEl.textContent = emoji;
261
+ // Position: Top-Right of the *Image*, slightly overlapping
262
+ emojiEl.className = 'absolute -top-2 -right-2 text-2xl animate-bounce z-50 drop-shadow-md transform rotate-12';
263
  emojiEl.style.animationDuration = '0.6s';
264
+ imgContainer.appendChild(emojiEl);
265
 
266
  // Remove after 3s
267
  setTimeout(() => emojiEl.remove(), 3000);
 
320
 
321
  // 1. Container for Relative Positioning
322
  const relativeContainer = document.createElement('div');
323
+ relativeContainer.className = 'relative w-full h-[600px] md:h-[700px] overflow-hidden rounded-3xl bg-gray-900/50 border border-gray-700/30 shadow-inner flex items-center justify-center';
324
  container.appendChild(relativeContainer);
325
 
326
+ // Watermark
327
+ const watermark = document.createElement('div');
328
+ watermark.className = 'absolute bottom-6 right-8 text-gray-500/30 text-lg md:text-xl font-bold pointer-events-none z-0 font-mono tracking-widest select-none';
329
+ const d = new Date();
330
+ watermark.textContent = `[${d.getFullYear()}.${String(d.getMonth() + 1).padStart(2, '0')}.${String(d.getDate()).padStart(2, '0')}] VibeCoding 怪獸成長營`;
331
+ relativeContainer.appendChild(watermark);
332
+
333
  // 2. Instructor Section (Absolute Center)
334
  const instructorSection = document.createElement('div');
335
  instructorSection.className = 'absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 flex flex-col items-center justify-center z-20 group cursor-pointer';
 
436
  </div>
437
 
438
  <!-- Monster Image -->
439
+ <div class="monster-img-container relative w-20 h-20 md:w-24 md:h-24 flex items-center justify-center transform group-hover/card:scale-125 transition-transform duration-300" style="animation: float 3s ease-in-out infinite; animation-delay: -${floatDelay}s;">
440
  <div class="w-full h-full pixel-art drop-shadow-md filter group-hover/card:brightness-110 transition-all">
441
  ${generateMonsterSVG(monster)}
442
  </div>