server/aspnetapp/wwwroot/lib/smart-nav.js

(开头部分) 3KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

/**
 * @description 文档标题生成快捷导航,不支持IE浏览器
 * @tutorial https://www.zhangxinxu.com/wordpress/?p=9707
 * @author zhangxinxu(.com) 2020-11-23
 */

var smartNav = function (elements, options) {
    var defaults = {
        nav: null
    };

    var params = Object.assign({}, defaults, options || {});

    if (typeof elements == 'string') {
        elements = document.querySelectorAll(elements);
    }
    
    if (!elements.forEach) {
        return;
    }

    // 导航元素创建,如果没有
    if (!params.nav) {
        params.nav = document.createElement('ul');
        params.nav.className = 'title-nav-ul nav nav-pills nav-stacked nav-right';
        document.body.appendChild(params.nav);
        //$(".col-md-3").html(params.nav);
    }
   
    var lastScrollTop = document.scrollingElement.scrollTop;

    var zxxObserver = new IntersectionObserver(function (entries) {
        if (params.isAvoid) {
            return;
        }
        entries.reverse().forEach(function (entry) {
            if (entry.isIntersecting) {
                entry.target.active();  
            } else if (entry.target.isActived) {
                entry.target.unactive();  
            }
        });

        lastScrollTop = document.scrollingElement.scrollTop;
    });

    elements.forEach(function (ele, index) {
        var id = ele.id || ('smartNav' + Math.random()).replace('0.', '');
        ele.id = id;
        // 导航元素创建
        var eleNav = document.createElement('li');
        var eleLink = document.createElement('a');
        eleLink.href = '#' + id;
        eleNav.className = 'title-nav-li';
        eleNav.appendChild(eleLink);
        eleLink.innerHTML = ele.textContent;
        params.nav.appendChild(eleNav);
        ele.active = function () {
            // 对应的导航元素高亮
            eleNav.parentElement.querySelectorAll('.active').forEach(function (eleActive) {
后面还有 45 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。