我有一个网站,其中有一个名为.slidingDiv,当点击锚.show_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>
非常感谢
皮特
答案 0 :(得分:9)
在scrollTop
函数的回调中或在调用slideToggle
函数之后设置slideToggle
(正如您所做的那样)会导致跳跃行为,充其量。如果您正在寻找平滑动画,最好先启动幻灯片,然后animate
页面向下滚动。这由fiddle证明。这是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);
});
});
答案 1 :(得分:2)
只需在scrollTop
之前进行检查
<script type="text/javascript">
$(document).ready(function(){
$(".slidingDiv").hide();
$(".show_hide").show();
$('.show_hide').on('click',function(){
$(".slidingDiv").slideToggle(function(){
if($('.slidingDiv').height() > 0) {
$('html, body').animate({
scrollTop: $(".slidingDiv").offset().top
}, 1000);
}
});
});
});
</script>