首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bootstrap Scrollspy不起作用: Scrollspy不是函数

Bootstrap Scrollspy不起作用: Scrollspy不是函数
EN

Stack Overflow用户
提问于 2019-01-11 07:38:27
回答 2查看 8.9K关注 0票数 4

我正在制作一个只有一个页面的网站,我正在尝试让导航栏链接来反映你所在页面的哪个部分。我尝试过通过HTML使用它,但没有成功。我在容器上有这个代码,其中包含我的不同部分

代码语言:javascript
复制
<div class="container" data-spy="scroll" data-target="#navbar">

并且body被设置为relative。

因为那不起作用,所以我试着在javascript中使用Scrollspy

代码语言:javascript
复制
$('.container').scrollspy({ target: '#navbar' })

也不走运。我在bootstrap CDN之前有jQuery CDN,但是我在控制台中得到了这个错误。未捕获TypeError:$(...).scrollspy不是函数

CodePen:https://codepen.io/kjardine/pen/VqEbaz

EN

回答 2

Stack Overflow用户

发布于 2019-01-11 10:33:00

如果你检查你的控制台,你会看到一个错误。Bootstrap 4(目前)需要额外的js脚本才能正常运行。在Bootstrap4js文件前添加popper.js,Scrollspy就可以正常工作了。这是cdn:https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js

我还建议添加一点偏移量来补偿导航栏的高度。这样,在滚动或单击时,链接将在正确的时间亮起。你可以在你的JS中这样做:

代码语言:javascript
复制
$('body').scrollspy({ target: '#navbar-example', offset: 50 });
票数 10
EN

Stack Overflow用户

发布于 2020-12-17 17:36:49

我在从bootstrap 4.5迁移到5.0时也遇到了同样的问题。修复方法是替换:

代码语言:javascript
复制
$('body').scrollspy({ target: '#navbar-example' })

通过以下方式:

代码语言:javascript
复制
var scrollSpy = new bootstrap.ScrollSpy(document.body, {
  target: '#navbar-example'
})

请参阅引导程序文档:https://getbootstrap.com/docs/5.0/components/scrollspy/#methods

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54138480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档