首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Packery.js附加问题

用Packery.js附加问题
EN

Stack Overflow用户
提问于 2015-02-15 22:57:26
回答 2查看 711关注 0票数 0

我正在尝试将现有的页面内容“单击”添加到网格的末尾,但没有运气。Codepen上的docs中的示例创建了一个div,而我试图使用packery.('getItemElements')从现有网格项中提取数据,当它返回一个HTML元素数组时,当我附加到网格时,原始项移动,旧项消失,而不是Packery已经将元素放在后面,留下了一点空白。

到目前为止,这就是我所拥有的:

代码语言:javascript
复制
grid = $('.grid');
grid.packery({
    gutter: 10,
    itemSelector: '.grid-item',
    isHorizontal: true
});

$('.grid-wrapper .navigation .next').on('click', function() {

    var newGridContent = [];
    var currentContent = $('.grid').packery('getItemElements');

    for (var i = 0; i < currentContent.length; i++) {
        var newGridItem = currentContent[i];
        newGridContent.push(newGridItem);
    };
    grid.append(newGridContent);
    grid.packery('appended', newGridContent);

});

你可以在这里看到这个,在顶部的主网格旋转木马上:

http://johnpett.com/youraudience/

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-20 15:01:25

如果有人在这个问题上绊倒了,我的解决办法是:

代码语言:javascript
复制
var currentContent;

$('.grid-wrapper .navigation .next').on('click', function() {

    currentContent = $('.grid').packery('getItemElements');

    var elems = [];

    for (var i = 0; i < 10; i++) {
        var elem = getItemElement(i);
        elems.push(elem);
    };

    $('.grid').append(elems);

    $('.grid').packery('appended', elems);

    $('.grid').animate({
        "left": "-=500px"
    });

});

function getItemElement(i) {
    var elem = document.createElement('div');
    var itemImage = currentContent[i].style.backgroundImage;
    var itemOuterHTML = currentContent[i].outerHTML;
    elem.style.backgroundImage = itemImage;
    elem.innerHTML = itemOuterHTML;
    return elem;
}
票数 1
EN

Stack Overflow用户

发布于 2015-02-15 23:11:14

我在这里有预感,但如果这不起作用的话,我会更新更多.

代码语言:javascript
复制
var p_grid = grid.packery({
    gutter: 10,
    itemSelector: '.grid-item',
    isHorizontal: true
});

$('.grid-wrapper .navigation .next').on('click', function () {

    var newGridContent = [];
    var currentContent = $('.grid').packery('getItemElements');

    for (var i = 0; i < currentContent.length; i++) {
        var newGridItem = currentContent[i];
        newGridContent.push(newGridItem);
    };
    p_grid.append(newGridContent).packery('appended', newGridContent);

});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28532250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档