Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在锚点之间滚动页面时向div添加或删除类_Jquery_Scroll_Anchor_Addclass_Removeclass - Fatal编程技术网

Jquery 在锚点之间滚动页面时向div添加或删除类

Jquery 在锚点之间滚动页面时向div添加或删除类,jquery,scroll,anchor,addclass,removeclass,Jquery,Scroll,Anchor,Addclass,Removeclass,我正在为我的站点开发一个条件,这样当我将页面滚动到某个锚时,与该锚对应的菜单项会添加或删除某个类 我的问题是,我不能使第一项菜单删除类,当滚动到第二个锚,我认为问题可能是在条件,它可能不是我认为的工作方式,所以我需要你的帮助 为此,我使用jquery,以下是我迄今为止得到的: jQuery(document).ready(function($) { var target1 = $("#thehotel").offset().top; var target2 = $("#thec

我正在为我的站点开发一个条件,这样当我将页面滚动到某个锚时,与该锚对应的菜单项会添加或删除某个类

我的问题是,我不能使第一项菜单删除类,当滚动到第二个锚,我认为问题可能是在条件,它可能不是我认为的工作方式,所以我需要你的帮助

为此,我使用jquery,以下是我迄今为止得到的:

jQuery(document).ready(function($) {

    var target1 = $("#thehotel").offset().top;
    var target2 = $("#thecity").offset().top;

    var interval = setInterval(function() {

         // i am not sure if this setInterval method is causing the problem, yet i didn't find any other solution

         if ($(window).scrollTop() >= target1 && $(window).scrollTop() < target2) {
              $("#menu .item-109 a").addClass("myClass");
              $("#menu .item-111 a").removeClass("myClass");

         }  
         else if ($(window).scrollTop() >= target2) {
             $("#menu.item-109 a").removeClass("myClass");
             $("#menu .item-111 a").addClass("myClass");
         }  



    }, 250);    
});
jQuery(文档).ready(函数($){
var target1=$(“#thehotel”).offset().top;
var target2=$(“#thecity”).offset().top;
var interval=setInterval(函数(){
//我不确定这个setInterval方法是否导致了这个问题,但是我没有找到任何其他的解决方案
如果($(窗口).scrollTop()>=target1&&$(窗口).scrollTop()=target2){
$(“#menu.item-109 a”).removeClass(“myClass”);
$(“#menu.item-111a”).addClass(“myClass”);
}  
}, 250);    
});
如果你觉得我的英语不好,我道歉,那不是我的母语。 多谢各位

我发现了我的错误,是打字错误

在这里:

if($(窗口).scrollTop()>=target1&&$(窗口).scrollTop()=target2){
//更改此$(“#menu.item-109 a”).removeClass(“myClass”);
//到这个$(“#menu.item-109 a”).removeClass(“myClass”);
$(“#menu.item-111a”).addClass(“myClass”);
}  

代码正在运行,非常抱歉,谢谢大家。祝你今天愉快

很高兴看到你找到了答案。与使用
setInterval()
每隔250ms运行一次代码不同,您可以将事件处理程序附加到窗口,该窗口将在每次滚动时运行您的代码,以便您准确地知道何时输入和离开所需的边界

$(window).on('scroll', function(){

    if ($(window).scrollTop() >= target1 && $(window).scrollTop() < target2) {

        $("#menu .item-109 a").addClass("myClass");
        $("#menu .item-111 a").removeClass("myClass");

    }else if ($(window).scrollTop() >= target2) {

        //change this        
        $("#menu.item-109 a").removeClass("myClass");

        //to this            
        $("#menu .item-109 a").removeClass("myClass");

        $("#menu .item-111 a").addClass("myClass");
    }
});
$(窗口).on('scroll',function(){
如果($(窗口).scrollTop()>=target1&&$(窗口).scrollTop()=target2){
//改变这个
$(“#menu.item-109 a”).removeClass(“myClass”);
//对此
$(“#menu.item-109 a”).removeClass(“myClass”);
$(“#menu.item-111a”).addClass(“myClass”);
}
});
$(window).on('scroll', function(){

    if ($(window).scrollTop() >= target1 && $(window).scrollTop() < target2) {

        $("#menu .item-109 a").addClass("myClass");
        $("#menu .item-111 a").removeClass("myClass");

    }else if ($(window).scrollTop() >= target2) {

        //change this        
        $("#menu.item-109 a").removeClass("myClass");

        //to this            
        $("#menu .item-109 a").removeClass("myClass");

        $("#menu .item-111 a").addClass("myClass");
    }
});