javascript - Bricklayer.js:如何在同一页面上多次使用 Bricklayer?
问题描述
更新
我已将@Alice answser 添加到此代码片段中,以说明我使用砌砖工的原因和目的。Bricklayer 只修改了第一个briklayer
,但完全忽略了第二个,我可以理解,因为我使用querySelector
.
但即使添加了@Alice 的答案,结果还是一样。我试过masonry
了,但它弄乱了我的卡片布局。所以我在这里坚持bricklayer
这是修改后的版本。
$(document).ready(function() {
$(document).on('click', '#post-link', function posts(event) {
event.preventDefault();
$(this).addClass('underlined');
$('#project-link').removeClass('underlined');
$('#post-card').slideDown();
$('#project-card').slideUp();
});
$(document).on('click', '#project-link', function projects(event) {
event.preventDefault();
$(this).addClass('underlined');
$('#post-link').removeClass('underlined');
$('#post-card').slideUp();
$('#project-card').slideDown();
});
});
const bricklayers = []
document.querySelectorAll('.bricklayer').forEach(function (section) {
bricklayers.push(new Bricklayer(section));
});
//console.log(bricklayers)
.my-title {
text-transform: uppercase;
letter-spacing: 0.2em;
}
.underlined {
text-decoration: underline;
}
#project-card {
display: none;
}
.bricklayer-column-sizer {
width: 25%!important;
}
/* @media (min-width: 320px) and (max-width: 480px) {
.bricklayer-column-sizer {
width: 50%!important;
}
} */
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet" />
<link href="https://cdnjs.cloudflare.com/ajax/libs/bricklayer/0.4.3/bricklayer.css" rel="stylesheet" />
<div id='post-project' class="container">
<div class="my-2">
<h4 class="text-center my-title">
<p><a href="" id='post-link' class="underlined">posts</a> | <a href="" id='project-link'>projects</a> </p>
</div>
<!-- This bricklayer is for posts -->
<div id="post-card" class="bricklayer">
<div class="card bricklayer-item mb-3">
<a href="#">
<img src="https://i.postimg.cc/gjWk2VpS/Pay-Pal-Logo.png" class="card-img-top">
</a>
</div>
<div class="card bricklayer-item mb-3">
<a href="#">
<img src="https://i.postimg.cc/gjWk2VpS/Pay-Pal-Logo.png" class="card-img-top">
</a>
</div>
</div>
<!-- this bricklayer is for projects -->
<div id="project-card" class="bricklayer">
<div class="card bricklayer-item mb-3">
<a href="#">
<img src="https://i.postimg.cc/QN4ysXq5/django-logo.jpg" class="card-img-top">
</a>
</div>
<div class="card bricklayer-item mb-3">
<a href="#">
<img src="https://i.postimg.cc/QN4ysXq5/django-logo.jpg" class="card-img-top">
</a>
</div>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bricklayer/0.4.3/bricklayer.js"></script>
任何解决方案?
解决方案
只需查看您的代码,您的方法就有点错误。使用砌砖工,您只需要 1 个作为容器元素的父级,并由 classname 表示bricklayer
。
- 您能否仔细检查一下您的应用程序中是否正确安装并初始化了砌砖工(因为您的代码片段中缺少该部分)
- 接下来,为砌砖工定义一个容器元素,例如
<div class="bricklayer">
- 将几个孩子添加到您的容器中(按照此示例)
最后打电话给瓦工,只有一次。
例如
const bricklayer = new Bricklayer(document.querySelector('.bricklayer'))
希望有帮助。如果您可以分享更多代码或创建 Fiddle,我可以对其进行修改以使其为您工作:)
推荐阅读
- c# - 使用 Win32 API 移动文件时自动设置安全属性?(C#)
- android - 该设备显示了 android studio 的其他内容
- c++ - 如何在 gitlab 上使用 cmake 的 find_packge(OpenCV)
- javascript - 尝试呈现部分列表时出错
- html - 如何更改html中的字体颜色
- python - 用户注册后如何创建一个html页面?
- ios - IOS Apple Universal Links 随机失败
- vb.net - 透明png叠加表格
- java - 如何在 Java 中强制进行第一代 GC?
- sql-server - 插入@TableName