Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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
Javascript 当pageYoffset>;=副职_Javascript_Jquery_Html_Scroll_Event Listener - Fatal编程技术网

Javascript 当pageYoffset>;=副职

Javascript 当pageYoffset>;=副职,javascript,jquery,html,scroll,event-listener,Javascript,Jquery,Html,Scroll,Event Listener,我正在为我的站点制作一个简单的导航,它使用window.pageYoffset更改固定在文档右侧的唯一导航按钮上的标签,然后单击按钮上的操作,根据标签滚动到相应容器的顶部位置 注意: 容器A是动态的,高度根据容器的高度而变化 收到的图像 集装箱B有固定高度,我还没有决定 高度将是多少,但只是为了获得这个功能 去吧,我在考虑700px 如何计算pageYoffset,以便仅当pageYoffset>=containerB.offset.top时才会触发标签更改?我不确定这个条件是否满足,或者我正在

我正在为我的站点制作一个简单的导航,它使用window.pageYoffset更改固定在文档右侧的唯一导航按钮上的标签,然后单击按钮上的操作,根据标签滚动到相应容器的顶部位置

注意:

  • 容器A是动态的,高度根据容器的高度而变化 收到的图像
  • 集装箱B有固定高度,我还没有决定 高度将是多少,但只是为了获得这个功能 去吧,我在考虑700px
  • 如何计算pageYoffset,以便仅当pageYoffset>=containerB.offset.top时才会触发标签更改?我不确定这个条件是否满足,或者我正在追逐一只雁。有没有更好的办法来解决这个问题

    当前解决方案

    这是我当前的解决方案,但当滚动条甚至不接近ContainerB的顶部位置时,标签更改就会触发。我附上了一张描述页面的图片

    window.addEventListener( "optimizedScroll", function optimizedScrollFunc( ) {
        var self = voApp,
            gotoTop = document.getElementById( "cc-gototop-js" ),
            winPageYOffset = window.pageYOffset,
            windowInnerHeight = window.innerHeight,
            documentScrollHeight = document.body.scrollHeight,
            topStoriesLoadMore = document.getElementById( "cc-tsLoadMoreWrapper-js" );
            dom.glanceUIDiv = document.getElementById( "cc-glanceWrapper-js" ).offsetTop;
    
        console.log((winPageYOffset + windowInnerHeight), documentScrollHeight);
    
        if ( winPageYOffset + windowInnerHeight >= documentScrollHeight ) {
            console.log("FIRED");
            $( gotoTop )
                .removeClass( "cc-thisWeek" )
                .addClass( "cc-today" );
            $( topStoriesLoadMore )
                .removeClass( "cc-tsLoadMoreWrapperVisible" );
        }
        if ( winPageYOffset < 200 ) {
            $( gotoTop )
                .removeClass( "cc-today" )
                .addClass( "cc-thisWeek" );
        }
    } );
    appUtil.f_throttle( "scroll", "optimizedScroll" );
    
    window.addEventListener(“optimizedScroll”,函数optimizedScrollFunc(){
    var self=voApp,
    gotoTop=document.getElementById(“cc gotoTop js”),
    winPageYOffset=window.pageYOffset,
    windowInnerHeight=window.innerHeight,
    documentScrollHeight=document.body.scrollHeight,
    topStoriesLoadMore=document.getElementById(“cc tsLoadMoreWrapper js”);
    dom.glanceUIDiv=document.getElementById(“cc glanceWrapper js”).offsetTop;
    log((winPageYOffset+windowInnerHeight)、documentScrollHeight);
    如果(winPageYOffset+windowInnerHeight>=documentScrollHeight){
    控制台日志(“已启动”);
    $(转到)
    .removeClass(“本周抄送”)
    .addClass(“今日抄送”);
    $(topStoriesLoadMore)
    .removeClass(“cc tsLoadMoreWrapperVisible”);
    }
    如果(winPageYOffset<200){
    $(转到)
    .removeClass(“今日抄送”)
    .addClass(“本周抄送”);
    }
    } );
    appUtil.f_油门(“滚动”、“优化滚动”);
    
    页面线框