具有多个类别的图像过滤器
Jquery - image filter with multiple categories
我试图添加一个图像过滤器到一个图片库,我有麻烦让它工作时,一张照片有多个类别。当手机只有一个类别(例如UX)时,下面的代码可以工作。但如果我在同一张照片上添加第二个类别,它就不起作用了(例如UX, UI)。我需要改变JS代码使其工作吗?谢谢!
HTML <div id="filterWrapper">
<a data-rel="all" href="javascript:;" class="filter active">View all</a>
<a data-rel="UX" href="javascript:;" class="filter">UX Design</a>
<a data-rel="UI" href="javascript:;" class="filter">UI Design</a>
<a data-rel="Prototype/Development" href="javascript:;" class="filter">Prototype/Development</a>
</div>
<ul>
<li>
<a class="portfolio-item" data-portfolio-group="gallery" data-filter="UX" ></a>
</li>
<li>
<a class="portfolio-item" data-portfolio-group="gallery" data-filter="UX UI Prototype/Development"></a>
</li>
</ul>
JS
// filter selector
$(".filter").on("click", function () {
var $this = $(this);
// if we click the active tab, do nothing
if ( !$this.hasClass("active") ) {
$(".filter").removeClass("active");
$this.addClass("active"); // set the active tab
// get the data-rel value from selected tab and set as filter
var $filter = $this.data("rel");
// if we select view all, return to initial settings and show all
$filter == 'all' ?
$(".portfolio-item")
.attr("data-portfolio-group", "gallery")
.not(":visible")
.fadeIn()
: // otherwise
$(".portfolio-item")
.fadeOut(0)
.filter(function () {
// set data-filter value as the data-rel value of selected tab
return $(this).data("filter") == $filter;
})
// set data-portfolio-group and show filtered elements
.attr("data-portfolio-group", $filter)
.fadeIn(1000);
} // if
}); // on
您正在检查是否相等,而您应该检查字符串是否存在于data-filter
值内。
在过滤器函数中,你应该使用像。
return ($(this).data("filter").indexOf($filter) > -1);
相关文章:
- 如何将图像上传到带有 CSS 过滤器的服务器
- 如何使用fabric.js添加图像过滤器
- 将SVG过滤器应用的图像转换为二进制或base64以保存在后端
- 将背景颜色和图像过滤器的组合应用于svg路径
- OKZoom 插件无法使用 svg 过滤器处理图像
- jQuery - 同一页面上的多个图像过滤器
- 为织物形状的图案图像添加过滤器.js
- 在我的网站上添加Instagram过滤器的图像
- 使用javascript从图像中删除灰度css过滤器
- 如何通过API处理图像上的复古/复古过滤器
- 通过HTML表单和API自定义图像过滤器
- 使用JavaScript的图像处理过滤器
- 在原始图像上应用camanJS过滤器
- 自动调整高度为全宽度图像过滤器
- 具有多个类别的图像过滤器
- 为什么base 64字符串包含CCITTFAXDecode过滤器不转换为Chrome和FireFox中的图像
- 同位素与过滤器计数和图像加载
- 使用画布和范围输入事件的动态图像过滤器
- 通过javascript在css中添加一个图像路径到过滤器
- 同位素过滤器-防止“选定”;从加载所有图像分类