我想要实现的目标:点击链接(在标签内)后,切换到另一个标签并移动到页面的特定部分(如锚点)。
我工作的是点击链接后切换到标签,但它不会向下滚动到锚点。
非常感谢帮助!
代码:
<div class="tab-content">
<div class="tab-pane active in" id="A">
<a data-tab-destination="tab-B" href="#bag-in-box">Bag-in-Box</a>
</div>
<div class="tab-pane fade" id="B">
...
<div id="bag-in-box"> <!-- This is where it needs to scroll to -->
<p>Bag-in-Box</p>
</div>
</div>
</div>
<script type="text/javascript">
$(function() {
$("a[data-tab-destination]").on('click', function(e) {
e.preventDefault();
// Works
var tab = $(this).attr('data-tab-destination');
$("#" + tab).click();
// Doesn't work
var hashtag = $(this.hash);
var target = hashtag.length ? hashtag : $('[name=' + this.hash.slice(1) + ']');
if (target.length) {
$('html, body').animate({scrollTop: target.offset().top}, 1000);
return false;
}
});
});
</script>
答案 0 :(得分:2)
持有锚标记的另一个标签,删除类&#34;淡出&#34;并添加class&#34; active&#34;就这样。
<script type="text/javascript">
$(function() {
$("a[data-tab-destination]").on('click', function(e) {
e.preventDefault();
// Works
var tab = $(this).attr('data-tab-destination');
$("#" + tab).click();
// Doesn't work
var hashtag = $(this.hash);
var target = hashtag.length ? hashtag : $('[name=' + this.hash.slice(1) + ']');
if (target.length) {
$("#B").removeClass("fade").addClass("active");
$('html, body').animate({scrollTop: target.offset().top}, 1000);
return false;
}
});
});
</script>