Javascript 使用JQuery slidetoggle()时屏幕不向下滚动

Javascript 使用JQuery slidetoggle()时屏幕不向下滚动,javascript,jquery,html,css,slidetoggle,Javascript,Jquery,Html,Css,Slidetoggle,我有一个叫做.slidingDiv的网站,当点击anchor.show\u hide时,它会出现,当它是页面上唯一的内容时,它会向下滑动 如果此div上方有其他内容,则不会向下滚动并显示。相反,它显示的是div,但它不在站点内,因此它确实可以工作,但不会将其余内容推上 以下是JQuery: <script type="text/javascript"> $(document).ready(function(){ $(".slidingDiv").hide();

我有一个叫做.slidingDiv的网站,当点击anchor.show\u hide时,它会出现,当它是页面上唯一的内容时,它会向下滑动

如果此div上方有其他内容,则不会向下滚动并显示。相反,它显示的是div,但它不在站点内,因此它确实可以工作,但不会将其余内容推上

以下是JQuery:

<script type="text/javascript">

$(document).ready(function(){

        $(".slidingDiv").hide();
        $(".show_hide").show();

    $('.show_hide').click(function(){
    $(".slidingDiv").slideToggle(), 1000;
    scrollTop: $(this).offset().top
    });

});

</script>

$(文档).ready(函数(){
$(“.slidingDiv”).hide();
$(“.show_hide”).show();
$('.show_hide')。单击(函数(){
$(“.slidingDiv”).slideToggle(),1000;
scrollTop:$(this).offset().top
});
});
非常感谢


Pete

滑动切换
函数的回调中或调用
滑动切换
函数后设置
scrollTop
,充其量只能导致跳跃行为。如果您正在寻找平滑的动画,最好启动幻灯片,然后
设置动画
向下滚动页面。这就证明了这一点。以下是js:

$(document).ready(function() {
  $(".slidingDiv").hide();
  $(".show_hide").show();

  $('.show_hide').click(function() {
    $(".slidingDiv").slideToggle(1000);
    $('html, body').animate({
      scrollTop: $(".slidingDiv").offset().top + $('window').height()
    }, 2000);
  });
});​

只需在scrollTop之前检查一下


$(文档).ready(函数(){
$(“.slidingDiv”).hide();
$(“.show_hide”).show();
$('.show_hide')。在('单击',函数()上){
$(“.slidingDiv”).slideToggle(函数(){
如果($('.slidingDiv').height()>0){
$('html,body')。设置动画({
scrollTop:$(“.slidingDiv”).offset().top
}, 1000);
}
});
});
});

文档通常帮助很大……按照这个脚本,在切换div并向下滚动屏幕后,我可以在几次尝试后向上滚动,页面会变得跳跃,就像它不允许我滚动一样。这个小提琴确认scrollTop值设置超过了最大值。如果动画有时间完成,滚动位置将更新,跳跃行为将消失。这不是一个好的解决方案,必须有更好的方法来解决这个问题。如果你需要更多的帮助,我建议你问一个新的问题。