|
@@ -39,10 +39,45 @@ export default class App {
|
39
|
39
|
//横屏滚动数组值
|
40
|
40
|
this.busGrouds = [];
|
41
|
41
|
|
|
42
|
+ document.addEventListener('DOMContentLoaded', function () {
|
|
43
|
+ const menuItems = document.querySelectorAll('.menuOne');
|
|
44
|
+ const sections = document.querySelectorAll('div[id="m1"], div[id="m2"], div[id="m3"], div[id="m4"]'); // 获取所有带有 id 的 div
|
|
45
|
+
|
|
46
|
+ function updateMenu() {
|
|
47
|
+ let scrollPosition = window.scrollY; // 获取当前滚动位置
|
|
48
|
+ let foundActive = false; // 标记是否找到当前活动的菜单项
|
|
49
|
+ sections.forEach(section => {
|
|
50
|
+ const sectionTop = section.offsetTop; // 获取当前 section 的顶部位置
|
|
51
|
+ const sectionHeight = section.offsetHeight; // 获取当前 section 的高度
|
|
52
|
+ // 检查当前 section 是否在视口内
|
|
53
|
+ if (scrollPosition >= sectionTop && scrollPosition < sectionTop + sectionHeight) {
|
|
54
|
+ // 移除所有菜单项的选中状态
|
|
55
|
+ menuItems.forEach(item => item.classList.remove('menuClicked'));
|
|
56
|
+ // 找到对应的菜单项并添加选中状态
|
|
57
|
+ const correspondingMenuItem = Array.from(menuItems).find(item => {
|
|
58
|
+ return item.querySelector('a').getAttribute('href') === `./HogoodCoffee.html#${section.id}`;
|
|
59
|
+ });
|
|
60
|
+ if (correspondingMenuItem) {
|
|
61
|
+ correspondingMenuItem.classList.add('menuClicked');
|
|
62
|
+ }
|
|
63
|
+ foundActive = true; // 找到当前活动的菜单项
|
|
64
|
+ }
|
|
65
|
+ });
|
|
66
|
+ // 如果没有找到活动的菜单项,默认选中第一个菜单项
|
|
67
|
+ if (!foundActive) {
|
|
68
|
+ menuItems.forEach(item => item.classList.remove('menuClicked')); // 移除所有菜单项的选中状态
|
|
69
|
+ menuItems[0].classList.add('menuClicked'); // 默认选中第一个菜单项
|
|
70
|
+ }
|
|
71
|
+ }
|
|
72
|
+ // 监听滚动事件
|
|
73
|
+ window.addEventListener('scroll', updateMenu);
|
|
74
|
+ // 初始化菜单状态
|
|
75
|
+ updateMenu(); // 页面加载时调用一次
|
|
76
|
+ });
|
42
|
77
|
this.headerMenu();
|
43
|
78
|
this.banner();
|
44
|
79
|
this.init();
|
45
|
|
- this.updateMenu()
|
|
80
|
+ // this.updateMenu()
|
46
|
81
|
}
|
47
|
82
|
banner() {
|
48
|
83
|
// let isMob=this.isMobile;
|
|
@@ -169,31 +204,31 @@ export default class App {
|
169
|
204
|
|
170
|
205
|
// 获取所有菜单项
|
171
|
206
|
// 函数用于更新菜单状态
|
172
|
|
- updateMenu() {
|
173
|
|
- const menuItems = document.querySelectorAll('.menuOne');
|
174
|
|
- // 获取当前锚点
|
175
|
|
- const currentHash = window.location.hash;
|
176
|
|
- // 遍历所有菜单项
|
177
|
|
- if (!currentHash) {
|
178
|
|
- // 移除所有菜单项的选中状态
|
179
|
|
- menuItems.forEach(item => item.classList.remove('menuClicked'));
|
180
|
|
- // 给第一个菜单项添加选中状态
|
181
|
|
- menuItems[0].classList.add('menuClicked');
|
182
|
|
- } else {
|
183
|
|
- // 遍历所有菜单项
|
184
|
|
- menuItems.forEach(item => {
|
185
|
|
- item.classList.remove('menuClicked');
|
186
|
|
- // 获取当前菜单项的 href
|
187
|
|
- const link = item.querySelector('a').getAttribute('href');
|
188
|
|
- // 如果当前菜单项的 href 与当前锚点匹配,则添加 menuClicked 类
|
189
|
|
- if (link === `./HogoodCoffee.html${currentHash}`) {
|
190
|
|
- item.classList.add('menuClicked');
|
191
|
|
- }
|
192
|
|
- });
|
193
|
|
- }
|
194
|
|
- // 监听 hashchange 事件,当锚点变化时更新菜单状态
|
195
|
|
- window.addEventListener('hashchange', this.updateMenu);
|
196
|
|
- }
|
|
207
|
+ // updateMenu() {
|
|
208
|
+ // const menuItems = document.querySelectorAll('.menuOne');
|
|
209
|
+ // // 获取当前锚点
|
|
210
|
+ // const currentHash = window.location.hash;
|
|
211
|
+ // // 遍历所有菜单项
|
|
212
|
+ // if (!currentHash) {
|
|
213
|
+ // // 移除所有菜单项的选中状态
|
|
214
|
+ // menuItems.forEach(item => item.classList.remove('menuClicked'));
|
|
215
|
+ // // 给第一个菜单项添加选中状态
|
|
216
|
+ // menuItems[0].classList.add('menuClicked');
|
|
217
|
+ // } else {
|
|
218
|
+ // // 遍历所有菜单项
|
|
219
|
+ // menuItems.forEach(item => {
|
|
220
|
+ // item.classList.remove('menuClicked');
|
|
221
|
+ // // 获取当前菜单项的 href
|
|
222
|
+ // const link = item.querySelector('a').getAttribute('href');
|
|
223
|
+ // // 如果当前菜单项的 href 与当前锚点匹配,则添加 menuClicked 类
|
|
224
|
+ // if (link === `./HogoodCoffee.html${currentHash}`) {
|
|
225
|
+ // item.classList.add('menuClicked');
|
|
226
|
+ // }
|
|
227
|
+ // });
|
|
228
|
+ // }
|
|
229
|
+ // // 监听 hashchange 事件,当锚点变化时更新菜单状态
|
|
230
|
+ // window.addEventListener('hashchange', this.updateMenu);
|
|
231
|
+ // }
|
197
|
232
|
|
198
|
233
|
headerMenu() {
|
199
|
234
|
let scrollyOld = 0;
|