我正在尝试动态添加类名。当滚动偏移量大于 50 时,该类正在更改导航栏的显示。
这是 jQuery 代码(jQuery 在滚动时折叠导航栏):
$(window).scroll(function() {
if ($(".navbar-default").offset().top > 50) {
$(".navbar-fixed-top").addClass("top-nav-collapse");
} else {
$(".navbar-fixed-top").removeClass("top-nav-collapse");
}
});
这是我尝试过的:
<script>
export default {
data() {
return {
isSticky: false,
stickyClass: "top-nav-collapse",
};
},
methods: {
handleScroll(e) {
e.prevent();
if (window.scrollY > 50) {
this.isSticky = true;
console.log("deneme");
} else {
this.isSticky = false;
}
},
},
mounted() {
this.handleScroll();
},
};
</script>
如何转换此代码?
最佳答案
在 mounted()
函数中添加滚动事件处理程序并更改那里的 isSticky
变量。
export default {
data: () => ({
isSticky: false,
}),
mounted() {
this.scroll_event_handler = () => {
this.isSticky = window.scrollY > 50;
}
window.addEventListener("scroll", this.scroll_event_handler);
},
unmounted() {
window.removeEventListener("scroll", this.scroll_event_handler);
},
}
然后在您的模板中,您可以像这样添加/删除类:
<nav class="navbar-fixed-top" :class="{'top-nav-collapse': isSticky}">
...
</nav>
关于javascript - 如何将 JQuery 转换为 Vue.js 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70673581/