JavaScript实现电梯导航

页面加载(电梯导航显示与隐藏)

页面加载时,我们可以通过监听页面的load事件来执行一些初始化操作。例如,当页面完全加载后,我们可以初始化电梯导航的显示状态。

window.addEventListener("load", (event) => {
  // 页面加载完成后的初始化操作
  const elevator = document.querySelector('.elevator');
  const banner = document.querySelector('.banner');
  elevator.style.opacity = banner.offsetTop > 0 ? 1 : 0;
});

页面滚动(电梯导航与返回顶部功能)

页面滚动时,我们可以通过监听scroll事件来实现电梯导航的显示与隐藏,以及返回顶部的功能。

// 页面滚动到对应区域,电梯导航显示,否则隐藏
window.addEventListener('scroll', function () {
  const banner = document.querySelector('.banner');
  const elevator = document.querySelector('.elevator');
  const n = document.documentElement.scrollTop;
  elevator.style.opacity = n >= banner.offsetTop ? 1 : 0;
});

// 点击返回顶部
const backTop = document.querySelector('.elevator #backTop');
backTop.addEventListener('click', function () {
  window.scrollTo(0, 0);
});

页面缩放(电梯导航样式变化)

页面缩放可以通过监听resize事件来实现电梯导航样式的变化。例如,当页面缩放时,我们可以调整电梯导航的位置或样式。

window.addEventListener('resize', function () {
  // 根据页面缩放比例调整电梯导航的样式
  const elevator = document.querySelector('.elevator');
  // 假设我们根据窗口宽度调整电梯导航的位置
  elevator.style.left = `${window.innerWidth / 2}px`;
});

电梯导航跳转到对应模块

点击电梯导航的对应模块,页面会跳转到对应的模块位置。这可以通过监听页面的click事件,并使用scrollIntoView方法实现。

const list = document.querySelector('.elevator-list');
list.addEventListener('click', function (e) {
  if (e.target.tagName === 'A' && e.target.dataset.name) {
    const active = document.querySelector('.elevator-list .active');
    if (active) {
      active.classList.remove('active');
    }
    e.target.classList.add('active');
    const section = document.querySelector(`.${e.target.dataset.name}`);
    section.scrollIntoView({ behavior: 'smooth', block: 'start' });
  }
});

页面滚动时电梯导航样式变化

页面滚动到对应位置时,电梯导航对应模块自动发生变化。这可以通过监听页面的scroll事件,并根据滚动位置动态改变电梯导航的样式。

window.addEventListener('scroll', function () {
  const sections = document.querySelectorAll('.elevator-list a');
  sections.forEach(section => {
    const target = document.querySelector(`.${section.dataset.name}`);
    if (target.offsetTop >= window.pageYOffset - 100 && target.offsetTop < window.pageYOffset + window.innerHeight - 100) {
      section.classList.add('active');
    } else {
      section.classList.remove('active');
    }
  });
});

以上代码展示了如何使用JavaScript实现页面加载、缩放、滚动时电梯导航的显示、隐藏、跳转和样式变化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值