vue.js - Rails Vuejs - 在滚动上更改导航链接颜色不起作用
问题描述
所以我正在使用 Vue/Webpack 应用程序构建 Rails6。我要做的是在页面滚动时更改导航栏中的多个组件。
一切都运行得非常好,除了我的导航链接主页,关于等。
现在,当我尝试在滚动时执行 getElementsByClassName('navlinks') 时没有任何反应,并且我在控制台中收到此错误 Navbar.vue:95 UncaughtTypeError: Cannot read property 'contains' of undefined
我是 Vue 和 JS 的新手,所以我想我错过了一些小东西,但我一生都无法弄清楚这一点。
这是我的导航链接:
<Navbar>
<%= link_to "Home", root_path, class: "navlinks sm:inline-block sm:mt-0", slot: "nav-link" %>
<%= link_to "About", about_path, class: "navlinks sm:inline-block sm:mt-0", slot: "nav-link" %>
<%= link_to "Features", features_path, class: "navlinks sm:inline-block sm:mt-0", slot: "nav-link" %>
<%= link_to "Pricing", pricing_path, class: "navlinks sm:inline-block sm:mt-0", slot: "nav-link" %>
<%= link_to "Contact", contact_path, class: "navlinks sm:inline-block sm:mt-0", slot: "nav-link" %>
</Navbar>
这是我的 Vue 模板中的挂载函数:
mounted () {
this.$nextTick(function(){
window.addEventListener("scroll", function(){
var navbar = document.getElementsByClassName("navlinks");
var nav_classes = navbar.classList;
if(document.documentElement.scrollTop >= 150) {
if (nav_classes.contains("scrollLink") === false) {
nav_classes.toggle("scrollLink");
}
}
else {
if (nav_classes.contains("scrollLink") === true) {
nav_classes.toggle("scrollLink");
}
}
})
})
}
如果您需要更多信息,请告诉我。就像我说的所有其他更改都在工作,我只是在尝试定位多个链接以更新其滚动样式时遇到上述错误。
解决方案
推荐阅读
- url - 坏:现场数学混乱
- node.js - React 未使用正确的 REACT_APP_ 前缀检测我的 .env 文件
- asp.net-core-5.0 - 将 2 个模型传递给 ASP.NET Core 5 视图
- entity-framework - EF 框架代码优先 - 未生成正确的数据库脚本
- html - 将 R Markdown 文件转换为电子邮件
- python - 为什么这个 tkinter Menu 命令执行带有错误参数的函数?
- c++ - 为什么这里需要 std::launder ?
- r - 如何在ggplot ggppatern中将模式添加到堆叠和并排中
- ios - xCode:无法在颤振上安装“Runner”问题
- javascript - 在 HTML 和 Javascript/Jquery 中单击按钮后,如何执行修改 CSS 代码的函数?