Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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 $(this.attr('id'); sectionIdTonavigationLink[id]=$(导航>ul>li>a[href=\\\\\\\\\\\\\'+id+'); }); //油门功能,强制执行最小时间间隔 节气门功能(fn,间隔){ var lastCall,timeoutId; 返回函数(){ var now=new Date().getTime(); if(lastCall&现在=区段顶部){ //获取分区id var id=currentSection.attr('id'); //获取相应的导航链接 var$navigationLink=sectionIdTonavigationLink[id]; //如果链接未激活 if(!$navigationLink.hasClass('active')){ //从所有链接中删除.active类 $navigationLinks.removeClass('active'); //将.active类添加到当前链接 $navigationLink.addClass('active'); } //我们已经找到了我们的部分,所以返回false以退出each循环 返回false; } }); } $(窗口)。滚动(油门(highlightNavigation,100)); //如果您不想限制该功能,请使用以下选项: //$(窗口)。滚动(highlightNavigation) #导航{ 位置:固定; } #部分{ 位置:绝对位置; 左:150px; } .科{ 高度:200px; 利润率:10px; 填充:10px; 边框:1px黑色虚线; } #第五节{ 高度:1000px; } .主动{ 背景:红色; } 我是第一组 我是第二组 我是第三组 我是第四组 我是第五组_Javascript_Jquery_Hash_Hyperlink_Sections - Fatal编程技术网

Javascript $(this.attr('id'); sectionIdTonavigationLink[id]=$(导航>ul>li>a[href=\\\\\\\\\\\\\'+id+'); }); //油门功能,强制执行最小时间间隔 节气门功能(fn,间隔){ var lastCall,timeoutId; 返回函数(){ var now=new Date().getTime(); if(lastCall&现在=区段顶部){ //获取分区id var id=currentSection.attr('id'); //获取相应的导航链接 var$navigationLink=sectionIdTonavigationLink[id]; //如果链接未激活 if(!$navigationLink.hasClass('active')){ //从所有链接中删除.active类 $navigationLinks.removeClass('active'); //将.active类添加到当前链接 $navigationLink.addClass('active'); } //我们已经找到了我们的部分,所以返回false以退出each循环 返回false; } }); } $(窗口)。滚动(油门(highlightNavigation,100)); //如果您不想限制该功能,请使用以下选项: //$(窗口)。滚动(highlightNavigation) #导航{ 位置:固定; } #部分{ 位置:绝对位置; 左:150px; } .科{ 高度:200px; 利润率:10px; 填充:10px; 边框:1px黑色虚线; } #第五节{ 高度:1000px; } .主动{ 背景:红色; } 我是第一组 我是第二组 我是第三组 我是第四组 我是第五组

Javascript $(this.attr('id'); sectionIdTonavigationLink[id]=$(导航>ul>li>a[href=\\\\\\\\\\\\\'+id+'); }); //油门功能,强制执行最小时间间隔 节气门功能(fn,间隔){ var lastCall,timeoutId; 返回函数(){ var now=new Date().getTime(); if(lastCall&现在=区段顶部){ //获取分区id var id=currentSection.attr('id'); //获取相应的导航链接 var$navigationLink=sectionIdTonavigationLink[id]; //如果链接未激活 if(!$navigationLink.hasClass('active')){ //从所有链接中删除.active类 $navigationLinks.removeClass('active'); //将.active类添加到当前链接 $navigationLink.addClass('active'); } //我们已经找到了我们的部分,所以返回false以退出each循环 返回false; } }); } $(窗口)。滚动(油门(highlightNavigation,100)); //如果您不想限制该功能,请使用以下选项: //$(窗口)。滚动(highlightNavigation) #导航{ 位置:固定; } #部分{ 位置:绝对位置; 左:150px; } .科{ 高度:200px; 利润率:10px; 填充:10px; 边框:1px黑色虚线; } #第五节{ 高度:1000px; } .主动{ 背景:红色; } 我是第一组 我是第二组 我是第三组 我是第四组 我是第五组,javascript,jquery,hash,hyperlink,sections,Javascript,Jquery,Hash,Hyperlink,Sections,对于最近尝试使用此解决方案的任何人,我遇到了一个困难,试图让它工作。您可能需要退出href,如下所示: $('#navigation > ul > li > a[href=\\#' + id + ']'); 现在,我的浏览器没有在这段代码上抛出错误。我已经使用了David的优秀代码,并从中删除了所有jQuery依赖项,以防有人感兴趣: //缓存导航链接 var$navigationLinks=document.querySelectorAll('nav>ul>li>a');

对于最近尝试使用此解决方案的任何人,我遇到了一个困难,试图让它工作。您可能需要退出href,如下所示:

$('#navigation > ul > li > a[href=\\#' + id + ']');

现在,我的浏览器没有在这段代码上抛出错误。

我已经使用了David的优秀代码,并从中删除了所有jQuery依赖项,以防有人感兴趣:

//缓存导航链接
var$navigationLinks=document.querySelectorAll('nav>ul>li>a');
//缓存(按相反顺序)节
var$sections=document.getElementsByTagName('section');
//将每个节id映射到相应的导航链接
var sectionIdTonavigationLink={};
对于(变量i=$sections.length-1;i>=0;i--){
var id=$sections[i].id;
sectionIdTonavigationLink[id]=document.queryselectoral('nav>ul>li>a[href=\\\\\\\''+id+']'))|空;
}
//油门功能,强制执行最小时间间隔
节气门功能(fn,间隔){
var lastCall,timeoutId;
返回函数(){
var now=new Date().getTime();
if(lastCall&现在<(lastCall+间隔)){
//如果我们在间隔时间内,我们就等待
clearTimeout(timeoutId);
timeoutId=setTimeout(函数(){
lastCall=现在;
fn.call();
},间隔-(现在-上次调用));
}否则{
//否则,我们直接调用函数
lastCall=现在;
fn.call();
}
};
}
函数getOffset(el){
var x=0;
var _y=0;
而(el&&!isNaN(el.offsetLeft)和&!isNaN(el.offsetTop)){
_x+=el.offsetLeft-el.scrollLeft;
_y+=el.offsetTop-el.scrollTop;
el=el.offsetParent;
}
返回{top:_y,left:_x};
}
函数highlightNavigation(){
//获取滚动条的当前垂直位置
var scrollPosition=window.pageYOffset | | document.documentElement.scrollTop;
//迭代各部分
对于(变量i=$sections.length-1;i>=0;i--){
var currentSection=$sections[i];
//获取节的位置
var sectionTop=getOffset(currentSection).top;
//如果用户已滚动到该部分的顶部
如果(滚动位置>=sectionTop-250){
//获取分区id
var id=currentSection.id;
//获取相应的导航链接
var$navigationLink=sectionIdTonavigationLink[id];
//如果链接未激活
如果(类型$navigationLink[0]!=='undefined'){
如果(!$navigationLink[0].classList.contains('active')){
//从所有链接中删除.active类
对于(i=0;i<$navigationLinks.length;i++){
$navigationLinks[i].className=$navigationLinks[i].className.replace(/active/,“”);
}
//将.active类添加到当前链接
$navigationLink[0]。类名+=(“活动”);
}
}否则{
//从所有链接中删除.active类
对于(i=0;i<$navigationLinks.length;i++){
$navigationLinks[i].className=$navigationLinks[i].className.replace(/active/,“”);
}
}	
//我们已经找到了我们的部分,所以返回false以退出each循环
返回false;
}
}
}
window.addEventListener('scroll',throttle(highlightNavigation,150))
函数navHighlight(){
var scrollTop=$(document.scrollTop();
$(“节”)。每个(函数(){
var xPos=$(this.position();
var sectionPos=xPos.top;
var sectionHeight=$(this.height();
var总体=滚动顶部+截面高度;
如果((滚动顶部+20)>=截面位置和滚动顶部<总体){
$(this).addClass(
 $('#navigation > ul > li > a').attr('href', id).addClass('active');
$('#navigation > ul > li > a[href=#' + id + ']')
        if (position >= target) {
            $('#navigation > ul > li > a').removeClass('active');
            $('#navigation > ul > li > a[href=#' + id + ']').addClass('active');
        }
var $navigationLinks = $('#navigation > ul > li > a');
var $sections = $(".section"); 
var sectionIdTonavigationLink = {};
$sections.each( function(){
    sectionIdTonavigationLink[ $(this).attr('id') ] = $('#navigation > ul > li > a[href=\\#' + $(this).attr('id') + ']');
});
var $sections = $( $(".section").get().reverse() );
$sections.each( ... );
if ( !$navigationLink.hasClass( 'active' ) ) {
    $navigationLinks.removeClass('active');
    $navigationLink.addClass('active');
}
if (position + offset >= target) {
if ( $(window).scrollTop() >= $(document).height() - $(window).height() ) {
    // highlight the last link
$('#navigation > ul > li > a[href=\\#' + id + ']');
function navHighlight() {
    var scrollTop = $(document).scrollTop();

    $("section").each(function () {
        var xPos = $(this).position();
        var sectionPos = xPos.top;
        var sectionHeight = $(this).height();
        var overall = scrollTop + sectionHeight;

        if ((scrollTop + 20) >= sectionPos && scrollTop < overall) {
            $(this).addClass("SectionActive");
            $(this).prevAll().removeClass("SectionActive");
        }

        else if (scrollTop <= overall) {
            $(this).removeClass("SectionActive");
        }

        var xIndex = $(".SectionActive").index();
        var accIndex = xIndex + 1;

        $("nav li:nth-child(" + accIndex + ")").addClass("navActivePage").siblings().removeClass("navActivePage");
    });
}


.navActivePage {
    color: #fdc166;
}


$(document).scroll(function () {
    navHighlight();
});