.elevator-nav { position: fixed; top: 50%; right: 20px; transform: translateY(-50%); z-index: 999; }

.elevator-nav ul { list-style: none; padding: 0; margin: 0; }

.elevator-nav li { margin-bottom: 10px; }

.elevator-nav a { display: block; padding: 10px; background-color: #ccc; color: #000; text-align: center; text-decoration: none; }

.elevator-nav a:hover { background-color: #aaa; }


// 获取电梯导航元素 var elevatorNav = document.querySelector('.elevator-nav'); // 获取楼层元素 var floors = document.querySelectorAll('[id^="floor"]');

// 监听窗口滚动事件 window.addEventListener('scroll', function() { // 获取当前滚动位置 var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;

// 遍历楼层元素 for (var i = 0; i < floors.length; i++) { var floor = floors[i]; var floorTop = floor.offsetTop;

// 如果当前滚动位置超过楼层顶部位置,则将对应的电梯导航项设置为激活状态
if (scrollTop >= floorTop) {
  var activeLink = elevatorNav.querySelector('.active');
  if (activeLink) {
    activeLink.classList.remove('active');
  }
  var links = elevatorNav.querySelectorAll('a');
  links[i].classList.add('active');
}

} });

// 监听电梯导航点击事件 elevatorNav.addEventListener('click', function(event) { event.preventDefault();

// 获取目标楼层的元素 var targetId = event.target.getAttribute('href').substring(1); var targetFloor = document.getElementById(targetId);

// 将窗口滚动至目标楼层位置 var targetTop = targetFloor.offsetTop; window.scrollTo({ top: targetTop, behavior: 'smooth' }); });


这段代码会在网页右侧固定一个电梯导航栏,在用户滚动到相应楼层时自动将对应电梯导航项设置为激活状态。用户点击电梯导航项时,页面会平滑滚动至对应楼层位置。
JavaScript 实现网页电梯导航功能

原文地址: https://www.cveoy.top/t/topic/l4QN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录