千家信息网

JavaScript如何制作楼层导航效果

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,这篇文章将为大家详细讲解有关JavaScript如何制作楼层导航效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. 功能实现1.1 结构层
千家信息网最后更新 2024年11月22日JavaScript如何制作楼层导航效果

这篇文章将为大家详细讲解有关JavaScript如何制作楼层导航效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

    1. 功能实现

    1.1 结构层

    • 栏目一
    • 栏目二
    • 栏目三
    • 栏目四
    • 栏目五
    • 栏目一
    • 栏目二
    • 栏目三
    • 栏目四
    • 栏目五

    1.2 样式层

    1.3 行为层

    1.3.1 楼层跳转

    点击左侧菜单中的楼层按钮对应跳转到相应的楼层。

    var oList = document.getElementById('left-list');// 点击事件委托oList.onclick = function (e) {    if (e.target.tagName.toLowerCase() == 'li') {        // 取data-n值        var n = e.target.getAttribute('data-n');        // []属性选择器        var contentPart = document.querySelector('.content-part[data-n=' + n + ']');        // 设置卷动        document.documentElement.scrollTop = contentPart.offsetTop;    }}
    1.3.2 楼层监听

    楼层监听,页面卷动时,左侧菜单中的楼层栏目背景随之变化。

    // 页面卷动时,左侧盒子栏目背景随之变化var contents = document.querySelectorAll('.content-part');var lis = document.querySelectorAll('#left-list li');var offsetTopArr = [];for (var i = 0; i < contents.length; i++) {    offsetTopArr.push(contents[i].offsetTop);}// 为了方便比较,追加无穷大offsetTopArr.push(Infinity);// 监听卷动var nowFloor = -1;_window.onscroll = function (e) {    var nowScrollTop = document.documentElement.scrollTop;    // break的i值即为盒子数组下标    for (var i = 0; i < offsetTopArr.length; i++) {        if (nowScrollTop >= offsetTopArr[i] && nowScrollTop < offsetTopArr[i + 1]) {            break;        }    }    // 楼层不等,进行样式更改    if (nowFloor != i) {        nowFloor = i;        for (var j = 0; j < lis.length; j++) {            if (j == i) {                // 当前楼层添加样式                lis[j].className = 'current';            } else {                // 去掉其他楼层的样式                lis[j].className = '';            }        }    }}

    2. 效果预览

    关于"JavaScript如何制作楼层导航效果"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

    0