Jquery 从其他页面访问时启动scrollspy

Jquery 从其他页面访问时启动scrollspy,jquery,html,twitter-bootstrap,twitter-bootstrap-3,Jquery,Html,Twitter Bootstrap,Twitter Bootstrap 3,我试图在维护scroll spy功能的同时链接到我主页的特定部分 使用此代码: <li><a href="#sec1">About</a></li> 它带我到主页上正确的部分,但scrollspy功能不再工作 js代码 $(function(){/* smooth scrolling for scroll to top */ /* highlight the top nav as scrolling occurs */ $('

我试图在维护scroll spy功能的同时链接到我主页的特定部分

使用此代码:

<li><a href="#sec1">About</a></li>
它带我到主页上正确的部分,但scrollspy功能不再工作

js代码

$(function(){/* smooth scrolling for scroll to top */
     /* highlight the top nav as scrolling occurs */
     $('body').scrollspy({ target: '#navbar' })
});
有什么想法吗?

你可以试试

$(document).ready(function(){
    var href = window.location.href; 
    var splitit = (href.split('#'))[1]; //split url to get sec1 name
    if(splitit !== "" || splitit !== "undefined"){
        $('html, body').animate({
            scrollTop: $('#'+splitit).offset().top
        }, 2000);
    }
});
此代码将拆分url以获取sec1或sec2。。。。然后使用id=“sec1”滚动到div

我的意思是,如果您将另一个页面重定向到www.website.com/anything#sec1,它将使用id=“sec1”将页面滚动到div

看看这个


您可以看到这一点。

除了@Mohamed Yousef的答案外,另一个选择是通过

$(document).ready(function() {
    // workaround for deep link via anchor
    var stripped_url = window
                    .location
                    .toString()
                    .split("#");
    if (stripped_url.length > 1) {
        var activeId = "#nav-deep-" + stripped_url[1];
        $(activeId)[0].click();
    }
});
jQuery选择器需要链接元素上的适当id,如

一个更优雅的解决方案是通过

$(document).ready(function() {
    // workaround for deep link via anchor
    var stripped_url = window
                    .location
                    .toString()
                    .split("#");
    if (stripped_url.length > 1) {
        var activeId = "#nav-deep-" + stripped_url[1];
        $(activeId)[0].click();
    }
});
$(document).ready(function() {
    // workaround for deep link via anchor
    var stripped_url = window
                    .location
                    .toString()
                    .split("#");
    if (stripped_url.length > 1) {
        $("a[href='#"+stripped_url[1]+"']")[0].click();
    }
});