Javascript 滚动时,如何使菜单栏从页面中间保持在顶部?
我想做一些像上面提到的那样的事情,所以我使用下面的方法(这很好)来创建我自己的,但是包括了自定义菜单。现在它不工作了,我想可能是因为javascript中的错误:Javascript 滚动时,如何使菜单栏从页面中间保持在顶部?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我想做一些像上面提到的那样的事情,所以我使用下面的方法(这很好)来创建我自己的,但是包括了自定义菜单。现在它不工作了,我想可能是因为javascript中的错误: $(document).ready(function() { $(window).scroll(function(e) { $el = document.getElementById('temp'); if ($(this).scrollTop() > 100) {
$(document).ready(function() {
$(window).scroll(function(e) {
$el = document.getElementById('temp');
if ($(this).scrollTop() > 100) {
$el.addClass("fixedNav");
} else {
$el.removeClass("fixedNav");
}
});
});
这无法识别div的ID并从css请求类,但不幸的是,我不能在这里使用class属性。你们能帮我解决这个问题吗?谢谢 替换此行:
$el = document.getElementById('temp');
为此:
$el = $('#temp');
或者将
$el
包装到jQuery对象中:
$el = document.getElementById('temp');
// ...
$($el).removeClass("fixedNav");
另外,您应该将
$el
声明移到$(窗口)之外。滚动方法(这样滚动时不会在DOM中搜索元素)
$(文档).ready(函数(){
变量$el=$(“#temp”);
$(窗口)。滚动(功能(e){
if($(this.scrollTop()>=100&&!$el.hasClass(“fixedNav”)){
$el.addClass(“固定资产净值”);
}else if($(this.scrollTop()<100&&$el.hasClass(“fixedNav”)){
$el.removeClass(“固定资产净值”);
}
});
});
@randonuser1检查我的更新答案
$(document).ready(function(){
var $el = $('#temp');
$(window).scroll(function (e){
if ($(this).scrollTop() >= 100 && !$el.hasClass("fixedNav")) {
$el.addClass("fixedNav");
}else if($(this).scrollTop() < 100 && $el.hasClass("fixedNav")){
$el.removeClass("fixedNav");
}
});
});