我的 jQuery 代码存在问题,并非总是被触发。
我想实现的是:当用户滚动超过 70 像素时切换某个类。虽然它能正常工作,但并非总是如此。
例如,有时在编辑主题或创建/编辑分类后,点击 Logo 返回首页时,该代码就无法生效,除非刷新页面。
我也可以使用原生的 .d-header 类,但在我的示例中,该类只有在滚动完整个英雄区块的高度后才会被添加,而我希望更早地添加该类。
那么,在 Discourse 主题中是否有更好的方式来包含自定义 jQuery 代码?
我使用的代码如下:
$(function() {
// 缓存包含 header 元素的 jQuery 对象
var header = $("body.categories-list .d-header-wrap, body.navigation-topics .d-header-wrap");
$(window).scroll(function() {
var scroll = $(window).scrollTop();
if (scroll >= 70) {
header.addClass("cd-active");
} else {
header.removeClass("cd-active");
}
});
});
测试主题: