【问题标题】:jQuery isotope for filtering NOT working用于过滤的 jQuery 同位素不起作用
【发布时间】:2013-02-15 09:18:50
【问题描述】:

我正在做一个网站,现在卡在 jQuery isotope 上,我需要一些帮助,拜托 我正在使用 jquery isotope 过滤 div,但不知何故它不起作用

我的 HTML:

<center><a href="" class="filter" rel="all">show all</a> | <a href="" class="filter" rel="green">green</a> | <a href="" class="filter" rel="blue">blue</a> | <a href="" class="filter" rel="pink">pink</a></center>
<br>
<div class="wrap">
    <div class="box green"></div>
    <div class="box blue"></div>
    <div class="box pink"></div>
    <div class="box blue"></div>
    <div class="box pink"></div>
    <div class="box green"></div>
    <div class="box pink"></div>
    <div class="box green"></div>
    <div class="box blue"></div>

    <div class="clear"></div>
</div>

我的 CSS:

.wrap{
    margin: auto;
    width: 660px;
    background: #ccc;
}
.clear{
    clear: both;
}
.box{
    float: left;
    width: 200px;
    height: 200px;
    margin: 10px 10px;
}
.green{
    background: green;
}
.blue{
    background: blue;
}
.pink{
    background: pink;
}

我的 Javascript:

$(document).ready(function() {
    $('.wrap').isotope({
        itemSelector: '.box'
    });

    $('a.filter').click(function() {
        var to_filter = $(this).attr('rel');
        if(to_filter == 'all') {
            $('.box').fadeIn();
        } else {
            $('.box').each(function() {
                if($(this).hasClass(to_filter)) {
                    $(this).fadeIn();
                } else {
                    $(this).fadeOut();
                }
            });
        }
        return false;
    });
});

或者您可以查看此链接:http://jsfiddle.net/wPdXF/

我的确切问题: 在我单击过滤器链接后,div 不会随机播放/动画

谁能帮帮我?

对不起我的英语不好

【问题讨论】:

  • 在您的 JSFiddle 中它按预期工作?
  • @reinder:不,绝对不是......谢谢你的回答:D
  • 那你需要更好地解释问题。如果我打开你的 jsfiddle 并按“绿色”,它只会显示绿色框。所有其他颜色相同,“全部显示”显示所有框。你希望它做什么?
  • jQuery Isotope 设计为响应式的,因此当您单击过滤器按钮时,应该会播放动画,并且在屏幕空间允许的情况下,框应该移动到内联浮动。这就是他的意思。 OP,我去看看,同位素我用过几次了。
  • @reindeer:我的问题是,在我点击颜色过滤器菜单后,div 没有随机播放/动画,它仍然有差距

标签: jquery html css jquery-isotope


【解决方案1】:

您遇到的问题(它“过滤”项目,但不重新定位它们,或动画重新定位)是因为您使用的是 jquery 的内置隐藏/显示而不是同位素的内置过滤机制。

$(document).ready(function() {
$('.wrap').isotope();

$('a.filter').click(function() {
    var to_filter = $(this).attr('rel');
    if(to_filter == 'all') {
        $('.wrap').isotope({filter: '.box'});
    } else {
        $('.wrap').isotope({filter: '.'+to_filter});
    }

});
});

工作小提琴:http://jsfiddle.net/yDPxK/1/

您需要做的是为过滤器提供同位素(您从 rel 属性匹配的类名。使用 jquery 的默认淡入/淡出只会改变它们的显示属性值,而不是改变它们在DOM。

过滤文档:http://isotope.metafizzy.co/docs/filtering.html

【讨论】:

  • 我已经在使用过滤器选项,但运气不好...仍然没有动画/随机播放
  • 好吧,我会分叉你的小提琴,看看我能不能让它工作。您是否使用其中一种自定义布局模式?砖石或居中是最受欢迎的。
  • 我在对一个工作示例的回答中添加了一个链接。您必须使用布局来获得更酷的动画选项。祝你好运!
  • 非常感谢您的回答...但是,它仍然没有像此演示中那样的动画:http://isotope.metafizzy.co/demos/filtering.html...任何解决方案?
  • 哦……我的错,现在完成了!!!,谢谢……只需添加一些 CSS3 动画,它就像魔术一样工作……谢谢
猜你喜欢
  • 1970-01-01
  • 2012-10-15
  • 1970-01-01
  • 2015-04-02
  • 1970-01-01
  • 2012-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多