链接到另一个页面的某个位置

时间:2016-10-05 18:25:38

标签: javascript jquery html

我有一个名为index.html的主页,其菜单链接到此主页上的某些位置(部分)。这是通过变量'数据幻灯片'来完成的。 (见下文)位于'按钮后面的'在菜单中。这在主页上运行良好。但是,当我在另一个html页面而不是主页上跳转到主页的某个位置(部分)时,我该怎么做呢?

    <div id="nav" class="right">
        <ul class="navigation">
            <li data-slide="1">Home</li>
            <li data-slide="2">Products</li>
            <li data-slide="4">Trade fairs</li>
            <li data-slide="6">Company</li>
            <li data-slide="8">Careers</li>
            <li data-slide="10">Contact</li>
            <li class="clear"></li>
        </ul>
    </div>

使用Javascript:

var links = $('.navigation').find('li');
slide = $('.slide');
button = $('.button');
mywindow = $(window);
htmlbody = $('html,body');

slide.waypoint(function (event, direction) {

    dataslide = $(this).attr('data-slide');

    if (direction === 'down') {
        $('.navigation li[data-slide="' + dataslide + '"]').addClass('active').prev().removeClass('active');
        $('.navigation li[data-slide="1"]').removeClass('active');
    }
    else {
        $('.navigation li[data-slide="' + dataslide + '"]').addClass('active').next().removeClass('active');
    }
});

mywindow.scroll(function () {
    if (mywindow.scrollTop() == 0) {
        $('.navigation li[data-slide="1"]').addClass('active');
        $('.navigation li[data-slide="2"]').removeClass('active');
    }
});

function goToByScroll(dataslide) {
    var goal = $('.slide[data-slide="' + dataslide + '"]').offset().top;
    if (mywindow.scrollTop()<goal) {
        var goalPx = goal + 1;
    } else {
        var goalPx = goal - 1;
    }
    htmlbody.animate({
        scrollTop: goalPx
    }, 2500, 'easeInOutQuint');
}

links.click(function (e) {
    e.preventDefault();
    dataslide = $(this).attr('data-slide');
    goToByScroll(dataslide);
});

button.click(function (e) {
    e.preventDefault();
    dataslide = $(this).attr('data-slide');
    goToByScroll(dataslide);

});

1 个答案:

答案 0 :(得分:0)

window.setTimeout(function(){
    if(window.location.hash){
        var $target  = $(window.location.hash).closest("#bgaboutbody");
        if($target.length)
            $('html, body').animate({scrollTop: $target.offset().top}, 1000);
    }
}, 100);

请尝试以下链接: - anchor linking to a certain position of the page