【发布时间】:2016-10-28 00:45:11
【问题描述】:
我知道除了 vue 之外如何使用masonry.js。但是,我在让它运行并在 vue 框架内正确调用时遇到了问题。我在 created 或 ready 中调用它,但似乎都没有正确形成网格。我怎样才能让它在框架内工作?哦,我确实在这个脚本之前的 html 中调用了 jquery。这是我在组件内部的内容:
编辑:
我可以看到砌体通过使用 JS 分配其高度并将项目更改为绝对位置来影响网格。但是,它没有正确放置它们。它将它们堆叠在彼此之上,而不是像应该在网格中那样并排。
<template>
<div class="projects--container">
<div class="inner-section inner--options">
<div class="grid">
<div class="grid-item"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
</div>
</div>
</div>
</template>
<script>
export default{
ready: function () {
this.mason();
},
data: function () {
return {
options: [
{
option: 'projects',
phrase: 'for clients',
slogan: 'slogan...'
},
{
option: 'sides',
phrase: 'for us',
slogan: 'we love what we make'
},
{
option: 'moments',
phrase: 'with the crew'
}
]
}
},
methods: {
revert: function () {
this.$dispatch('return-home', true)
},
mason: function () {
var $grid = $('.grid').masonry({
itemSelector: '.grid-item',
columnWidth: 250
});
$grid.masonry('layout');
}
},
events: {
'option-select': function (option) {
}
}
}
</script>
【问题讨论】:
-
请澄清发生了什么。它什么都不做吗?它是否部分工作?它会抛出错误吗?
-
添加了更多信息和控制台图像。
标签: javascript jquery vue.js jquery-masonry