实现jQuery同位素 [英] Implementing jQuery isotope
本文介绍了实现jQuery同位素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我一直在尝试实施真棒同位素插件 http://isotope.metafizzy.co/index .html
我正面临一个过滤器的问题,目前无法找到解决方法:
发生的情况是当单击全部过滤器链接时,所有项目都会显示,但是当其他过滤器链接单击时,所有项目都会消失。我真的很感谢一些帮助:)
我已经设置了一个 JSFiddle
以下是代码:
HTML:
< div class =large-12 columns>
< ul id =portfolio-filter>
< li>< a href =#data-filter =*> ALL< / a>< / li>
< li>< a href =#data-filter =。website> WEBSITE< / a>< / li>
< li>< a href =#data-filter =.logos> LOGOS< / a>< / li>
< li>< a href =#data-filter =。illustrations> ILLUSTRATIONS< / a>< / li>
< li>< a href =#data-filter =。brand> BRAND< / a>< / li>
< li>< a href =#data-filter =。ui> UI< / a>< / li>
< li>< a href =#data-filter =。icons>图标< / a>< / li>
< / ul>
< div id =portfolio-container>
< ul class =small-block-grid-2>
< li>< div class =website>< a href =#>< img src =img / portfolio / small-01.jpgalt => < / A>< / DIV>< /锂>
< li>< div class =logos>< a href =#>< img src =img / portfolio / small-02.jpgalt => < / A>< / DIV>< /锂>
< li>< div class =illustrations>< a href =#>< img src =img / portfolio / small-03.jpgalt => < / A>< / DIV>< /锂>
< li>< div class =brand>< a href =#>< img src =img / portfolio / small-04.jpgalt => < / A>< / DIV>< /锂>
< li>< div class =ui>< a href =#>< img src =img / portfolio / small-05.jpgalt => < / A>< / DIV>< /锂>
< li>< div class =icons>< a href =#>< img src =img / portfolio / small-06.jpgalt => < / A>< / DIV>< /锂>
< li>< div class =website>< a href =#>< img src =img / portfolio / small-07.jpgalt => < / A>< / DIV>< /锂>
< li>< div class =logos>< a href =#>< img src =img / portfolio / small-08.jpgalt => < / A>< / DIV>< /锂>
< li>< div class =illustrations>< a href =#>< img src =img / portfolio / small-09.jpgalt => < / A>< / DIV>< /锂>
< li>< div class =brand>< a href =#>< img src =img / portfolio / small-10.jpgalt => < / A>< / DIV>< /锂>
< li>< div class =ui>< a href =#>< img src =img / portfolio / small-11.jpgalt => < / A>< / DIV>< /锂>
< li>< div class =icons>< a href =#>< img src =img / portfolio / small-12.jpgalt => < / A>< / DIV>< /锂>
< li>< div class =website>< a href =#>< img src =img / portfolio / small-13.jpgalt => < / A>< / DIV>< /锂>
< li>< div class =logos>< a href =#>< img src =img / portfolio / small-14.jpgalt => < / A>< / DIV>< /锂>
< li>< div class =illustrations>< a href =#>< img src =img / portfolio / small-15.jpgalt => < / A>< / DIV>< /锂>
< li>< div class =brand>< a href =#>< img src =img / portfolio / small-16.jpgalt => < / A>< / DIV>< /锂>
< / ul>
< / div><! - / portfolio-container - >
< / div><! - / large-12 columns - >
JavaScript:
< code $ $(document).ready(function(){
// cache container
var $ container = $('#portfolio-container');
//初始化同位素
$ container.isotope({
// options ...
});
//单击过滤器链接时过滤项目
$('#portfolio-filter li a')。click(function(){
var selector = $(this).attr('data-filter');
$ container.isotope( {filter:selector});
return false;
});
});
解决方案
- 应用选择器类直接到
< ul class =small-block-grid-2>
内的< li>
>并清除图像周围的div。 - 确保所有img标签都已正确关闭,
< img ..... />
。 - 将同位素应用于
< ul class =small-block-grid-2>
/ li>
HTML
< div ID = 组合容器 >
< ul class =small-block-grid-2>
< li class =website>< a href =#>< img src =img / portfolio / small-01.jpgalt =/><一个>< /锂>
...
< / ul>
< / div>
javascript
var $ container = $('。small-block-grid-2');
//初始化同位素
$ container.isotope({
// options ...
});
//单击过滤器链接时过滤项目
$('#portfolio-filter li a')。on('click',function(){
var selector = $(this).data('filter');
$ container.isotope({
filter:selector
});
return false;
});
I've been trying to implementing the awesome isotope plugin http://isotope.metafizzy.co/index.html
I am facing a problem with a filter and am not able to find a workaround for it so far:
What is happening is that when "ALL" filter link is clicked, all items are displayed but when any other filter link is clicked, all the items disappear. I would really appreciate some help:)
I have set up a JSFiddle
And here's the code:
HTML:
<div class="large-12 columns">
<ul id="portfolio-filter">
<li><a href="#" data-filter="*">ALL</a></li>
<li><a href="#" data-filter=".website">WEBSITE</a></li>
<li><a href="#" data-filter=".logos">LOGOS</a></li>
<li><a href="#" data-filter=".illustrations">ILLUSTRATIONS</a></li>
<li><a href="#" data-filter=".brand">BRAND</a></li>
<li><a href="#" data-filter=".ui">UI</a></li>
<li><a href="#" data-filter=".icons">ICONS</a></li>
</ul>
<div id="portfolio-container">
<ul class="small-block-grid-2">
<li><div class="website"><a href="#"><img src="img/portfolio/small-01.jpg" alt=""></a></div></li>
<li><div class="logos"><a href="#"><img src="img/portfolio/small-02.jpg" alt=""></a></div></li>
<li><div class="illustrations"><a href="#"><img src="img/portfolio/small-03.jpg" alt=""></a></div></li>
<li><div class="brand"><a href="#"><img src="img/portfolio/small-04.jpg" alt=""></a></div></li>
<li><div class="ui"><a href="#"><img src="img/portfolio/small-05.jpg" alt=""></a></div></li>
<li><div class="icons"><a href="#"><img src="img/portfolio/small-06.jpg" alt=""></a></div></li>
<li><div class="website"><a href="#"><img src="img/portfolio/small-07.jpg" alt=""></a></div></li>
<li><div class="logos"><a href="#"><img src="img/portfolio/small-08.jpg" alt=""></a></div></li>
<li><div class="illustrations"><a href="#"><img src="img/portfolio/small-09.jpg" alt=""></a></div></li>
<li><div class="brand"><a href="#"><img src="img/portfolio/small-10.jpg" alt=""></a></div></li>
<li><div class="ui"><a href="#"><img src="img/portfolio/small-11.jpg" alt=""></a></div></li>
<li><div class="icons"><a href="#"><img src="img/portfolio/small-12.jpg" alt=""></a></div></li>
<li><div class="website"><a href="#"><img src="img/portfolio/small-13.jpg" alt=""></a></div></li>
<li><div class="logos"><a href="#"><img src="img/portfolio/small-14.jpg" alt=""></a></div></li>
<li><div class="illustrations"><a href="#"><img src="img/portfolio/small-15.jpg" alt=""></a></div></li>
<li><div class="brand"><a href="#"><img src="img/portfolio/small-16.jpg" alt=""></a></div></li>
</ul>
</div><!-- /portfolio-container -->
</div><!-- /large-12 columns -->
JavaScript:
$(document).ready(function(){
// cache container
var $container = $('#portfolio-container');
// initialize isotope
$container.isotope({
// options...
});
// filter items when filter link is clicked
$('#portfolio-filter li a').click(function(){
var selector = $(this).attr('data-filter');
$container.isotope({ filter: selector });
return false;
});
});
解决方案
- Apply the selector classes directly to the
<li>
elements inside<ul class="small-block-grid-2">
and purge the divs from around the images. - Make sure all the img tags are properly closed,
<img ..... />
. - Apply isotope to
<ul class="small-block-grid-2">
HTML
<div id="portfolio-container">
<ul class="small-block-grid-2">
<li class="website"><a href="#"><img src="img/portfolio/small-01.jpg" alt="" /></a></li>
...
</ul>
</div>
javascript
var $container = $('.small-block-grid-2');
// initialize isotope
$container.isotope({
// options...
});
// filter items when filter link is clicked
$('#portfolio-filter li a').on('click', function() {
var selector = $(this).data('filter');
$container.isotope({
filter: selector
});
return false;
});
这篇关于实现jQuery同位素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文