Jquery 切换后ScrollTop不工作
无法理解,为什么它不滚动到元素Jquery 切换后ScrollTop不工作,jquery,scrolltop,Jquery,Scrolltop,无法理解,为什么它不滚动到元素 <div class="h3 showhide">...</div> <div id="comments" class="inv" style="display:none;">...</div> <script type="text/javascript"> $(document).ready(function () { $('.main-content').on('click',
<div class="h3 showhide">...</div>
<div id="comments" class="inv" style="display:none;">...</div>
<script type="text/javascript">
$(document).ready(function () {
$('.main-content').on('click', '.showhide', function () {
$(".inv").toggle("slow");
$('html, body').stop(true, true).animate({
scrollTop: $('#comments').offset().top
}, 500);
return false;
});
});
</script>
。。。
...
$(文档).ready(函数(){
$('.main content')。在('click','.showhide',函数(){
$(“.inv”)。切换(“慢”);
$('html,body')。停止(true,true)。设置动画({
scrollTop:$(“#注释”).offset().top
}, 500);
返回false;
});
});
显示:无表示元素在页面中没有位置。因此,滚动不滚动
参考:您需要显示#注释
以获取.offset()。使用.show()
将其置于顶部
,然后使用.hide()
将其隐藏
请参见此示例:
<script type="text/javascript">
$(document).ready(function() {
var comments_top = $('#comments').show().offset().top;
$('.main-content').on('click', '.showhide', function() {
if ($('#comments').is(":hidden")) {
comments_top = $('#comments').show().offset().top;
$('#comments').hide();
}
$(".inv").toggle("slow");
$('html, body').stop(true, true).animate({
scrollTop: comments_top
}, 500);
return false;
});
});
</script>
$(文档).ready(函数(){
var comments_top=$('#comments').show().offset().top;
$('.main content')。在('单击','.showhide',函数()上{
如果($('#comments')。是(“:hidden”)){
comments_top=$('#comments').show().offset().top;
$(“#注释”).hide();
}
$(“.inv”)。切换(“慢”);
$('html,body')。停止(true,true)。设置动画({
scrollTop:comments\u top
}, 500);
返回false;
});
});
如果语句应该在单击函数中,请参见更新