如何在bxslider中获取一组活动幻灯片
How to get set of active slides in bxslider?
我刚刚将bxslider集成到我的网站中,我有一个要求,我需要滑块中的当前活动/可见图像集,请参阅bxslideHERE的示例。
jQuery初始化代码如下:
$('.bxslider').bxSlider({
mode: 'vertical',
infiniteLoop: true,
pager: false,
minSlides:3,
slideMargin:10
});
现在我尝试了公共API中的所有方法,最接近我的需求的是onSlideAfter
,所以我尝试这样使用它:
var bxslider = $('.bx-slider').bxSlider({
mode: 'vertical',
minSlides: 3,
slideWidth:304,
onSlideAfter: function(elem , old , newi){
var idx = elem.index(),
src = $('.bx-slider li').eq(idx).find('img').attr('src');
console.log(elem.index());
$('.active-project-img img').attr('src' , src);
}
});
但是elem
既不是有源元件的集合,也不是我实际假设的第一个有源元件
使用幻灯片插件的另一个解决方案是,获取所有可见元素,但问题是bxsider一开始并没有隐藏任何元素。
有人能帮我拿一套活动/可见元素吗?
编辑:Bxslider API
谢谢。
正如您所提到的,bxslider通过固定视点高度和使用变换来发挥作用,因此没有简单的方法来获取所有活动幻灯片。
在测试过程中,我发现bxslider以某种方式将.bx-clone
复制到列表中。为了避免计算错误,我将.not('.bx-clone')
排除在外。
波纹管应能满足您的需求。
var minslide = 3; // for later usage
var slider = $('.bxslider').bxSlider({
mode: 'vertical',
infiniteLoop: true,
pager: false,
minSlides:3,
slideMargin:10,
onSlideAfter: function(elem, old, newi){
// calculate offset
si = minslide*newi;
ei = minslide*(newi+1);
active_slides = $('.bxslider li').not('.bx-clone').slice(si, ei); // key point
console.log(active_slides);
}
});
计算部分虽然不完整(可能不是均匀划分),但你可以修复它。
相关文章:
- fluxxor向一个flux实例添加一组以上的操作
- 我们怎样才能将内含子J用于一组特定的元素
- 使用linq.js按当前日期订购一组momentjs日期
- 正则表达式,从一组关键字中获取奇数
- 创建一组元素JointJS
- 如何在javascript中获取一组复选框值
- 一组(共组..)
- 使用JS将页面中的每个字母设置为随机颜色.为什么在页面的每个打开标记之前总是有一组额外的span标记
- 在一组复选框中,一次只允许选择一个
- 为什么在fabricjs中可选择的不适用于一组圆
- 如何在不刷新页面的情况下每次单击一组选项卡时刷新视图内容窗格
- 从一组具有相同起始和结束的所有段落的段落中提取包含特定字符串的段落
- 简单的Javascript文本编辑器或一组函数
- 基于日期范围的一组日期范围内的天数
- 处理对象数组并将它们以 4 个为一组进行分配
- 如何在 Javascript 中用一组字符拆分子字符串上的字符串
- 使一组对象与 jQuery 一起拖动
- 使用第 n 个类型设置一组八个元素的样式
- 如何在bxslider中获取一组活动幻灯片
- JavaScript-延迟一组setTimeout活动