1

所以我让 jQuery 滚动在我的页面上工作得很好。但我想改变一件事。我不想在 url 中显示锚文本。IE。#products 或 #contactinfo

HTML 代码:

<div>
<a href="#products">Products</a>
<a href="#contactinfo">Contact info</a>
</div>

<div id="products"></div>

<div id="contactinfo"></div>

jQuery代码:

    $(document).ready(function(){
    $('a[href^="#"]').on('click',function (e) {
        e.preventDefault();

        var target = this.hash,
        $target = $(target);

        $('html, body').stop().animate({
            'scrollTop': $target.offset().top
        }, 900, 'swing', function () {
            window.location.hash = target;
        });
    });
});
4

2 回答 2

5

试试这个:

HTML:

<div>
    <span class="link" rel="#products">Products</span>
    <span class="link" rel="#contactinfo">Contact info</span>
</div>

<div style="height:800px;"></div>
<div id="products">products</div>
<div style="height:800px;"></div>
<div id="contactinfo">contact</div>
<div style="height:800px;"></div>

脚本:

$(document).ready(function(){
    $('.link').on('click',function (e) {
        $('html, body').stop().animate({
            'scrollTop': $($(this).attr('rel')).offset().top
        }, 900, 'swing', function () {});
    });
});

小提琴

于 2013-08-19T14:50:38.063 回答
1

只需在函数return false;末尾添加 a 即可。click编辑:并且很可能删除这条线,我的意思是..它完全符合您的要求?显然?

window.location.hash = target;
于 2013-08-19T14:39:25.320 回答