Javascript 使用JQuery slidetoggle()时屏幕不向下滚动
我有一个叫做.slidingDiv的网站,当点击anchor.show\u hide时,它会出现,当它是页面上唯一的内容时,它会向下滑动 如果此div上方有其他内容,则不会向下滚动并显示。相反,它显示的是div,但它不在站点内,因此它确实可以工作,但不会将其余内容推上 以下是JQuery: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();
<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值设置超过了最大值。如果动画有时间完成,滚动位置将更新,跳跃行为将消失。这不是一个好的解决方案,必须有更好的方法来解决这个问题。如果你需要更多的帮助,我建议你问一个新的问题。