0

我将 Google 的平滑滚动脚本用于特定的锚链接#tothetop,而不仅仅是任何#一个。我在 example.js 文件(您使用脚本下载)中完成了此操作:

改变:

$('a[href*=#]').click(function() { ... });

至:

$('a[href*=#tothetop]').click(function() { ... });

所以现在它只将平滑滚动应用于#tothetop,但我如何将它应用于其他不同的锚链接?例如:#tothetop, #tothebottom, #gotothepub, 等?(不要问我为什么不使用“#”,因为这是一个很长的故事,但简而言之 - 它与页面上的另一个脚本冲突)我试过了:

$('a[href*=#tothetop]','a[href*=#tothebottom]').click(function() { ... });

但这不起作用。我对 Javascript 和 PHP 不太了解,但我确信有一种简单的方法可以做到这一点?

example.js 的完整代码如下:

$(function(){

$('a[href*=#tothetop]').click(function() {

if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') 
    && location.hostname == this.hostname) {

        var $target = $(this.hash);

        $target = $target.length && $target || $('[name=' + this.hash.slice(1) +']');

        if ($target.length) {

            var targetOffset = $target.offset().top;

            $('html,body').animate({scrollTop: targetOffset}, 1000);

            return false;

        }

    }

});

});
4

2 回答 2

1

我会使用它,因为显然您将滚动锚点都命名为“toTheAnchor”:

$('body').on('click', 'a[href^=#][href*=to]', function() {});

这应该选择所有以“#”开头并在单词中包含“to”的链接。

于 2012-06-22T13:09:39.150 回答
1

尝试

$('a[href^="#"]').click(...);

此选择器将匹配href属性以 . 开头的所有锚点#

你的例子是有效的,但它应该这样写

$('a[href*="#tothetop"], a[href*="#tothebottom"]')

注意值周围的引号和单引号(仅使用一次)。

于 2012-06-22T12:55:48.693 回答