Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击'';“返回顶部”;按钮(滚动顶部)多次发出_Javascript_Jquery_Click_Scrolltop - Fatal编程技术网

Javascript 单击'';“返回顶部”;按钮(滚动顶部)多次发出

Javascript 单击'';“返回顶部”;按钮(滚动顶部)多次发出,javascript,jquery,click,scrolltop,Javascript,Jquery,Click,Scrolltop,我注意到,如果我多次单击“返回顶部”按钮,然后你尝试向下滚动,它会导致窗口不断返回顶部。你知道如何阻止这种情况发生吗 我的代码是: <a href="#" class="scrollup">Scroll</a> <script type="text/javascript"> $(document).ready(function(){ $(window).scroll(function(){ $("html, body").

我注意到,如果我多次单击“返回顶部”按钮,然后你尝试向下滚动,它会导致窗口不断返回顶部。你知道如何阻止这种情况发生吗

我的代码是:

<a href="#" class="scrollup">Scroll</a>

<script type="text/javascript">
    $(document).ready(function(){ 

        $(window).scroll(function(){
    $("html, body").stop();
            if ($(this).scrollTop() > 100) {
                $('.scrollup').fadeIn();
            } else {
                $('.scrollup').fadeOut();
            }
        }); 
        $.clicked = false;
        if ($.clicked == false){
        $('.scrollup').click(function(){
        $.clicked = true;
            $("html, body").stop().animate({ scrollTop: 0 }, 600);
            return false;
        });
       }
    });
</script>

$(文档).ready(函数(){
$(窗口)。滚动(函数(){
$(“html,body”).stop();
如果($(this).scrollTop()>100){
$('.scrollup').fadeIn();
}否则{
$('.scrollup').fadeOut();
}
}); 
$.clicked=false;
如果($.clicked==false){
$('.scrollup')。单击(函数(){
$.clicked=true;
$(“html,body”).stop().animate({scrollTop:0},600);
返回false;
});
}
});

正如您所说,您多次单击,事件将被多次触发,因此您需要停止动画功能

因此,请按如下所示编辑您的代码

$("html, body").stop().animate(
 --------------^^^^^^^^----
或编辑滚动的代码

$(window).scroll(function(){
  $("html, body").stop();

这应该行得通。

我也有类似的问题

我只是通过简单的检查解决了这个问题:

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

如前所述,问题是点击事件多次触发。因为处理事件本身对我来说不起作用,我只是尝试检查当前滚动值/位置是否已经在我想要的位置,等等,瞧!奇怪的行为消失了!:)

Hello@DipeshParmar谢谢你的帮助!第一个代码可以完成这项工作。但是如果我在插入第二个代码,当我单击按钮时,它使滚动仅向上移动一个像素。但是如果使用没有第二个代码的代码,您共享它仍然会产生一些问题…***您可以看到我的原始代码,我已按照您的建议进行了编辑***@需要帮助,抱歉我的错误,我将
也将
替换为
您可以在其中之一中执行此操作对。
$('.scrollup').click(function(){
    if ($(document).scrollTop() != 0) {
        $("html, body").animate({ scrollTop: 0 }, 600);
    }
    return false;
});