如何在平滑滚动脚本中排除链接? (jQuery的)

时间:2015-04-12 15:18:25

标签: javascript jquery html twitter-bootstrap

我在我的网站上使用Bootstrap 3轮播。 我也在使用这个jQuery脚本:

<script>
    $(function() {
        $('a[href*=#]:not([href=#])').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) 
                {
                    $('html,body').animate({
                      scrollTop: target.offset().top
                    }, 1000);
                    return false;
                }
            }
        });
    });
</script>

问题在于,当滑动轮播时,它会点击#carousel链接。这使得旋转木马无法正常工作。

我想知道的是,是否可以从脚本中排除#carousel?因此该脚本不适用于#carousel,但适用于所有其他链接。

谢谢。

2 个答案:

答案 0 :(得分:3)

只需将其添加到选择器

即可
$('a[href*=#]:not([href=#]):not([href=#carousel])')

答案 1 :(得分:1)

您可以将CSS选择器添加到忽略项:在构造函数中,将选择器添加到可滚动锚点

var scroll = new SmoothScroll('a[href*="#"]', {

	// Selectors
	ignore: '[data-scroll-ignore]'
  
});
<a class="nav-link active" data-toggle="pill" href="#nav-tab-card" data-scroll-ignore>