scrollTop的正则表达式匹配规则被覆盖

时间:2018-04-12 20:21:20

标签: javascript regex scrolltop

在我的网站上,我使用以下代码为所有锚点实现smoothscroll:

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

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

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

但我在网站末尾还有一个滚动顶部,如下所示:

<a href="#" class="scrollup"><i class="fa fa-angle-double-up"></i></a>

我的问题是以下代码被完全忽略(scrolltop不起作用):

$(document).ready(function(){ 

         $(window).scroll(function(){
             if ($(this).scrollTop() > 100) {
                 $('.scrollup').fadeIn();
             } else {
                 $('.scrollup').fadeOut();
             }
         }); 

         $('.scrollup').click(function(){
             $("html, body").animate({ scrollTop: 0 }, 600);
             return false;
         });

     });    

基本上我认为&#39; a [href ^ =&#34;#&#34;]&#39;正则表达式匹配优先于单个&#39; .scrollup&#39;选择。有没有办法说&#34;任何锚,除了尖锐的单独&#34;或者更好的方法来解决这个问题?我想保持所有锚点的平滑滚动,但也有一个空的&#34;#&#34;滚动顶部的锚点仍然可以使它工作。

0 个答案:

没有答案