使用 bxSlider 过滤 Show/Hide 的滑块项
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)。
我的滑块中的每张熊图片都会有 class item_1_5
基本上我想做的是过滤我的 bxSilder 中的项目。
现在我正在使用以下代码
$('.categoryList').click(function() {
var cat = $(this).data('category');
var type = $(this).data('type');
$('.carouselItem').hide();
$('.item_'+type+'_'+cat).show();
});
我的过滤工作正常,但 bxSilder 的行为非常奇怪,其中包含隐藏元素。
"next" 和 "prev" 按钮似乎可以计算任何隐藏的元素,就像它没有被隐藏一样(这可能是预期的行为)。
但是,我不希望我的滑块考虑隐藏元素。
我的问题是,如何在不破坏 prev/next 按钮的情况下动态过滤 bxSlider 的元素?
编辑 : 这是fiddle描述问题
http://jsfiddle.net/swrf991q/7/
过滤后,下一个和上一个按钮不起作用 + 寻呼机中的幻灯片数量仍然相同。
找了半天,bxsilder 不让你过滤条目。
我改用 slick slider。
如果你真的想继续使用bxsilder,你要做的事情相当复杂
- 首先,您需要 html.
中某处的所有元素的隐藏副本
- 首先使用
destroySlider
函数销毁滑块
- 那么你应该从 bxslider 中删除每个元素
$('#carousel').html('')
- 现在将你想从隐藏副本中看到的每个元素复制到滑块div(你在这里应用你的过滤器)
- 创建一个新滑块。
我认为您可以使用 redrawSlider
函数,而不是销毁滑块并重新创建它,但我还没有尝试过。
我的网页上有一个带有以下选项的 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)。
我的滑块中的每张熊图片都会有 class item_1_5
基本上我想做的是过滤我的 bxSilder 中的项目。 现在我正在使用以下代码
$('.categoryList').click(function() {
var cat = $(this).data('category');
var type = $(this).data('type');
$('.carouselItem').hide();
$('.item_'+type+'_'+cat).show();
});
我的过滤工作正常,但 bxSilder 的行为非常奇怪,其中包含隐藏元素。 "next" 和 "prev" 按钮似乎可以计算任何隐藏的元素,就像它没有被隐藏一样(这可能是预期的行为)。
但是,我不希望我的滑块考虑隐藏元素。 我的问题是,如何在不破坏 prev/next 按钮的情况下动态过滤 bxSlider 的元素?
编辑 : 这是fiddle描述问题
http://jsfiddle.net/swrf991q/7/
过滤后,下一个和上一个按钮不起作用 + 寻呼机中的幻灯片数量仍然相同。
找了半天,bxsilder 不让你过滤条目。 我改用 slick slider。
如果你真的想继续使用bxsilder,你要做的事情相当复杂
- 首先,您需要 html. 中某处的所有元素的隐藏副本
- 首先使用
destroySlider
函数销毁滑块 - 那么你应该从 bxslider 中删除每个元素
$('#carousel').html('')
- 现在将你想从隐藏副本中看到的每个元素复制到滑块div(你在这里应用你的过滤器)
- 创建一个新滑块。
我认为您可以使用 redrawSlider
函数,而不是销毁滑块并重新创建它,但我还没有尝试过。