eaglelandsonce commited on
Commit
ae1ff91
·
verified ·
1 Parent(s): 54a5198

Update script.js

Browse files
Files changed (1) hide show
  1. script.js +113 -7
script.js CHANGED
@@ -1,3 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  function toggleWebsiteLayer() {
2
  if (websiteVisible) {
3
  websiteLayer.style.display = 'none';
@@ -5,21 +60,72 @@ function toggleWebsiteLayer() {
5
  } else {
6
  const websiteURL = slides[currentIndex]?.website || '';
7
  if (websiteURL) {
8
- websiteFrame.src = websiteURL;
9
- websiteLayer.style.display = 'block';
 
10
  }
11
  }
12
  websiteVisible = !websiteVisible;
13
  }
14
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  nextBtn.addEventListener('click', () => {
16
  currentIndex = (currentIndex + 1) % slides.length;
17
  loadSlide(currentIndex);
18
- if (websiteVisible) toggleWebsiteLayer(); // Hide website layer on slide change
19
  });
20
 
21
- prevBtn.addEventListener('click', () => {
22
- currentIndex = (currentIndex - 1 + slides.length) % slides.length;
23
- loadSlide(currentIndex);
24
- if (websiteVisible) toggleWebsiteLayer(); // Hide website layer on slide change
25
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const slideTitle = document.getElementById('slide-title');
2
+ const slideImage = document.getElementById('slide-image');
3
+ const prevBtn = document.getElementById('prev-btn');
4
+ const nextBtn = document.getElementById('next-btn');
5
+ const promptBox = document.getElementById('promptBox');
6
+ const promptText = document.getElementById('promptText');
7
+ const responseBox = document.getElementById('responseBox');
8
+ const responseContent = document.getElementById('responseContent');
9
+ const promptIcon = document.getElementById('promptIcon');
10
+ const videoIcon = document.getElementById('videoIcon');
11
+ const videoOverlay = document.getElementById('videoOverlay');
12
+ const videoPlayer = document.getElementById('videoPlayer');
13
+ const closeVideo = document.getElementById('closeVideo');
14
+ const queryButton = document.getElementById('queryButton');
15
+ const websiteIcon = document.getElementById('websiteIcon');
16
+ const websiteLayer = document.getElementById('websiteLayer');
17
+ const websiteFrame = document.getElementById('websiteFrame');
18
+ const textboxIcon = document.getElementById('textboxIcon');
19
+ const textboxLayer = document.getElementById('textboxLayer');
20
+ const textboxContent = document.getElementById('textboxContent');
21
+
22
+ let slides = [];
23
+ let currentIndex = 0;
24
+ let websiteVisible = false;
25
+ let textboxVisible = false;
26
+
27
+ async function fetchSlides() {
28
+ try {
29
+ const response = await fetch('config.json');
30
+ const data = await response.json();
31
+ slides = data.slides;
32
+ loadSlide(currentIndex);
33
+ } catch (error) {
34
+ console.error('Error loading slides:', error);
35
+ }
36
+ }
37
+
38
+ function loadSlide(index) {
39
+ if (!slides.length) return;
40
+ const slide = slides[index];
41
+ slideTitle.textContent = slide.id.replace('_', ' ');
42
+ slideImage.src = slide.image;
43
+ promptBox.style.display = 'none';
44
+ responseBox.style.display = 'none';
45
+ responseContent.innerHTML = '';
46
+ videoPlayer.src = '';
47
+ textboxLayer.style.transform = 'translateX(100%)';
48
+ textboxLayer.style.display = 'none';
49
+ textboxContent.innerHTML = '';
50
+ textboxVisible = false;
51
+ if (websiteVisible) {
52
+ toggleWebsiteLayer();
53
+ }
54
+ }
55
+
56
  function toggleWebsiteLayer() {
57
  if (websiteVisible) {
58
  websiteLayer.style.display = 'none';
 
60
  } else {
61
  const websiteURL = slides[currentIndex]?.website || '';
62
  if (websiteURL) {
63
+ window.open(websiteURL, '_blank');
64
+ } else {
65
+ console.warn('No website URL defined for this slide.');
66
  }
67
  }
68
  websiteVisible = !websiteVisible;
69
  }
70
 
71
+ function toggleTextboxLayer() {
72
+ if (textboxVisible) {
73
+ textboxLayer.style.transform = 'translateX(100%)';
74
+ setTimeout(() => {
75
+ textboxLayer.style.display = 'none';
76
+ }, 300);
77
+ textboxContent.innerHTML = '';
78
+ } else {
79
+ const markdownText = slides[currentIndex]?.text || "No additional text available.";
80
+ textboxContent.innerHTML = marked(markdownText);
81
+ textboxLayer.style.display = 'block';
82
+ setTimeout(() => {
83
+ textboxLayer.style.transform = 'translateX(0)';
84
+ }, 10);
85
+ }
86
+ textboxVisible = !textboxVisible;
87
+ }
88
+
89
+ prevBtn.addEventListener('click', () => {
90
+ currentIndex = (currentIndex - 1 + slides.length) % slides.length;
91
+ loadSlide(currentIndex);
92
+ });
93
+
94
  nextBtn.addEventListener('click', () => {
95
  currentIndex = (currentIndex + 1) % slides.length;
96
  loadSlide(currentIndex);
 
97
  });
98
 
99
+ promptIcon.addEventListener('click', () => {
100
+ const slideText = slides[currentIndex]?.text || "No prompt text available.";
101
+ promptBox.style.display = promptBox.style.display === 'block' ? 'none' : 'block';
102
+ promptText.value = slideText;
103
  });
104
+
105
+ videoIcon.addEventListener('click', () => {
106
+ const videoURL = slides[currentIndex]?.video || '';
107
+ if (videoURL) {
108
+ videoPlayer.src = videoURL;
109
+ videoOverlay.style.display = 'flex';
110
+ }
111
+ });
112
+
113
+ closeVideo.addEventListener('click', () => {
114
+ videoOverlay.style.display = 'none';
115
+ videoPlayer.src = '';
116
+ });
117
+
118
+ websiteIcon.addEventListener('click', toggleWebsiteLayer);
119
+ textboxIcon.addEventListener('click', toggleTextboxLayer);
120
+
121
+ queryButton.addEventListener('click', async () => {
122
+ const userPrompt = promptText.value.trim();
123
+ if (!userPrompt) return;
124
+ responseBox.style.display = "block";
125
+ responseContent.innerHTML = "Processing...";
126
+ setTimeout(() => {
127
+ responseContent.innerHTML = "Response received: " + userPrompt;
128
+ }, 2000);
129
+ });
130
+
131
+ fetchSlides();