我想点击链接并在当前页面中打开一个标签(评论)并滚动到它。我不想在网址中使用哈希.....
这是我点击链接的代码:
$('#openReview').on('click', function() {
$('.nav-tabs a[href="#review"]').tab('show');
document.getElementById("review").scrollIntoView();
});
问题是:我要点击两次!!!
首先:它使标签处于活动状态(第二个标签) - >然后第二次点击滚动到它。
如何只需点击一下即可使其工作? :)
答案 0 :(得分:0)
尝试使用此代码:
$('#openReview').on('click', function() {
$('.nav-tabs a[href="#review"]').tab('show');
$('html, body').animate({
scrollTop: $(".tabs-widget").offset().top
}, 2000);
});
如果您有更多带有tabs-widget
类的元素,我建议您在此元素中添加一个ID,并在scrollTop
中引用它。您可以在代码中更改滚动动画持续时间(我的示例是2秒)
修改强>
实际上,如果您在选项卡的包装部分使用id而不是使用#reviews,则代码将起作用。原因是tab需要几毫秒(" show")执行,同时元素#reviews不在视图中,因此无法立即滚动到。
$('#openReview').on('click', function () {
$('.nav-tabs a[href="#review"]').tab('show');
document.getElementById("tabs_widget").scrollIntoView();
});
...
<!-- in you HTML -->
<section class="tabs-widget" id="tabs_widget">