使用 bxSlider 使用显示/隐藏过滤滑块项目
Filter slider item with Show/Hide using bxSlider
我的网页上有一个bxslider,其中包含以下选项
$('#carousel').bxSlider({
slideWidth: 146,
minSlides: 2,
maxSlides: 6,
speed:500,
adaptiveHeight: true,
moveSlides:3,
infiniteLoop : false,
hideControlOnEnd : true,
slideMargin: 10
});
在这个滑块中,我有多个 DOM 元素,如下所示
<div class="itemClass_XX_YY carouselItem">
<div class="someClass"><img src="path/to/some/picture.png" /><span>SomeTitle</span></div>
</div>
在此代码中class="item_XX_YY"
XX 和 YY 是描述图片的类别。例如,假设类别动物是 1(所以 XX=1),熊的类别 id 为 5 (YY=5)。我的滑块内每张熊的照片都将用于班级item_1_5
基本上我想做的是在我的bxSilder中过滤项目。现在我使用以下代码
$('.categoryList').click(function() {
var cat = $(this).data('category');
var type = $(this).data('type');
$('.carouselItem').hide();
$('.item_'+type+'_'+cat).show();
});
我的过滤工作正常,但 bxSilder 在其中隐藏元素时表现得非常巧妙。"下一个"和"上一个"按钮似乎计算任何隐藏的元素,就像它没有隐藏一样(这可能是预期的行为)。
但是,我不希望我的滑块考虑隐藏元素。我的问题是,如何在不破坏上一个/下一个按钮的情况下动态过滤 bxSlider 的元素?
编辑:这是一个描述问题的小提琴
http://jsfiddle.net/swrf991q/7/
过滤后,下一个和上一个按钮不起作用+寻呼机中的幻灯片数量仍然相同。
搜索了很长时间后,bxsilder不允许您过滤项目。我改用了光滑的滑块。
如果你真的想继续使用bxsilder,你必须做的是相当复杂的。
- 首先,你需要一个隐藏的 html 中所有元素的副本。
- 首先使用
destroySlider
功能破坏滑块 - 然后,您应该从bxslider中删除每个元素
$('#carousel').html('')
- 现在将您想要查看的每个元素从隐藏副本复制到滑块div(您在此处应用过滤器)
- 创建新滑块。
我认为与其销毁滑块并再次创建它,不如使用 redrawSlider
函数,但我还没有尝试过。
相关文章:
- 相对于角度控制器中的另一个阵列过滤阵列项目
- 限制在角度中过滤是否会阻止在 ng 重复中加载其他项目
- 观察角度过滤项目的变化
- 如何过滤推特流API订阅源,只获取与新闻相关的项目
- 使用 bxSlider 使用显示/隐藏过滤滑块项目
- jQuery在过滤后仅导航可见项目
- 角度按条件过滤数组中的多个项目
- 使用 .filter .map .some .indexOf 等过滤项目
- 角度.js分页过滤的数据并显示总项目,而无需在视图/控制器中复制代码
- Angular:过滤多个项目
- Jquery同位素过滤淡化不匹配的项目,而不是隐藏
- 使用同位素过滤后,当项目的宽度小于3时,请更改项目的宽度
- 使用下拉菜单反应过滤项目
- 用angular js过滤项目
- JavaScript | AngularJS:根据日期过滤结果过滤项目
- 过滤jQuery可排序的项目
- AppleScript JXA过滤表与许多行相同的名称,但不同的项目
- 我应该如何创建一个项目列表,过滤下拉项目选择在引导
- 我如何格式化谷歌图表数据,以显示项目的计数,但按年过滤
- 使用 jQuery (AJAX) 过滤项目 - 请求以错误的顺序完成