gpt4 book ai didi

javascript - Masonry js 扰乱了 Bootstrap 选项卡功能

转载 作者:行者123 更新时间:2023-12-03 11:30:45 25 4
gpt4 key购买 nike

我正在使用 Desandro 的 Masonry 的 Bootstrap 选项卡功能,问题是当我加载页面时,它在第一个选项卡上启动半秒,然后跳转到带有 Masonry 的选项卡。我猜我可以通过一些脚本来解决这个问题,但我对 js/jquery 太陌生,无法弄清楚。

我尝试更改脚本代码的顺序,因为在我看来,页面加载,然后 Masonry 脚本发生并强制其选项卡处于事件状态。但无论代码的顺序如何,它仍然会发生。

具体来说,我需要的是有人指出我忽略的错误,或者给我一些关于如何使页面在加载时停留在第一个选项卡上的指示。

我在这里包含了我的 html 和 js 控件,但我还在 http://jsfiddle.net/jccarter1990/o15e98ts/3/ 上摆弄了完整的代码。

提前致谢

<ul class="nav nav-pills" role="tablist" id="myTab">
<li role="presentation" class="active"><a href="#page-one" role="tab" data-toggle="tab">Cover Letter</a></li>
<li role="presentation"><a href="#page-two" role="tab" data-toggle="tab">Features</a></li>
<li role="presentation"><a href="#page-three" role="tab" data-toggle="tab">Gallery</a></li>
</ul>

<div class="tab-content">

<div role="tabpanel" class="tab-pane active" id="page-one">Cover Letter</div>

<div role="tabpanel" class="tab-pane" id="page-two">Features</div>

<div role="tabpanel" class="tab-pane" id="page-three">
<div class="masonry js-masonry" >
<div class="item"><img class="thumbnail" src="img/paigeJohnLasVegas.jpg"></div>
<div class="item"><img class="thumbnail" src="img/engagementsCloseUp.jpg"></div>
<div class="item"><img class="thumbnail" src="img/jimmyJohns.jpg"></div>
<div class="item"><img class="thumbnail" src="img/paigeNinjaTurtle.jpg"></div>
<div class="item"><img class="thumbnail" src="img/sprayPaintSid.jpg"></div>
</div>
</div>

<script>
var container = document.querySelector('.masonry');
var msnry;
// initialize Masonry after all images have loaded
imagesLoaded( container, function() {
msnry = new Masonry( container );
});
var container = document.querySelector('.masonry');
var msnry = new Masonry( container, {
// options
columnWidth: 200,
itemSelector: '.masonry.item'
});

$('#myTab a').click(function (e) {
e.preventDefault()
$(this).tab('show')
})

$(function () {
$('#myTab a[href="#page-one"]').tab('show')
$('#myTab a[href="#page-two"]').tab('show')
$('#myTab a[href="#page-three"]').tab('show')
})


</script>

最佳答案

更新的答案:将您的第一个选项卡和面板设置为事件选项卡:

Fiddle

 <div class="container navigation"> <span class="nt-name">John Carter</span>

<br> <span class="nt-title">Professional Portfolio</span>

<ul class="nav nav-pills" role="tablist" id="myTab">
<li role="presentation" class="active"><a href="#page-one" role="tab" data-toggle="tab">Cover Letter</a>

</li>
<li role="presentation"><a href="#page-two" role="tab" data-toggle="tab">Features</a>

</li>
<li role="presentation"><a href="#page-three" class="active" role="tab" data-toggle="tab">Gallery</a>

</li>
</ul>
</div>
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="page-one">
<div class="container">
<h1>Cover Letter</h1>

</div>
</div>
<div role="tabpanel" class="tab-pane" id="page-two">
<div class="container">
<h1>Features</h1>

</div>
</div>
<div role="tabpanel" class="tab-pane" id="page-three">
<div class="container">
<h1>Gallery</h1>

</div>
<div class="masonry js-masonry">
<div class="item">
<img class="thumbnail" src="img/paigeJohnLasVegas.jpg">
</div>
<div class="item">
<img class="thumbnail" src="img/engagementsCloseUp.jpg">
</div>
<div class="item">
<img class="thumbnail" src="img/jimmyJohns.jpg">
</div>
<div class="item">
<img class="thumbnail" src="img/paigeNinjaTurtle.jpg">
</div>
<div class="item">
<img class="thumbnail" src="img/sprayPaintSid.jpg">
</div>
</div>
</div>
</div>

将您的脚本更改为:

//bootstrap tab function
$('#myTab a').click(function (e) {
e.preventDefault()
$(this).tab('show')
})

省略:

顺便说一句,如果您选中包含 Bootstrap 的框,则不必在 jsfiddle 中包含用于选项卡的 bootstrap.js,它包含 js。如果您要包含其他 js,例如 masonry.js,请使用外部资源添加它们,而不是将它们粘贴到脚本面板中,这将使人们更容易查看相关代码。

关于javascript - Masonry js 扰乱了 Bootstrap 选项卡功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26743551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com