不是编码专家,请找到有关如何使用“每种”的解决方案。但是,然后吸取与等高线相结合。请帮忙! 加载完所有内容后,“滑动列表”就是与最高幻灯片的高度相等的列表。然后,我希望每个“轮播-环绕-x乐队”在其自己的“光滑列表”上均相等。
$("[class*='carousel-wrap-'] .carousel").each(function() {
$(this).slick({
appendArrows: $(this).siblings('.carousel-control'),
other functions
});
$(this).siblings({
var offsetHeight = $(this).siblings('.slick-list').outerHeight();
$(this).siblings('.carousel .band').outerHeight(offsetHeight);
$( window ).resize(function() {
$(this).siblings('.carousel .band').css("height", "100%")
var offsetHeight = $(this).siblings('.slick-list').outerHeight();
$(this).siblings('.carousel .band').outerHeight(offsetHeight);
});
});
});
<div class="carousel-wrap-1">
<div class="carousel-control"></div>
<div class="carousel">
<div class="slick-list">
<div class="band">1</div>
<div class="band">2</div>
<div class="band">3</div>
</div>
</div>
</div>
答案 0 :(得分:1)
不确定我完全了解您的工作-这里肯定有很多错误,如果您对代码比较陌生,我会为您的冒险而称赞!我对光滑的滑块和jquery的“每个”都很熟悉-所以这是我认为出错的一些地方。
jquery函数.each()接受两个参数-索引和元素。我认为index是您从$(“ [class * ='carousel-wrap-'] .carousel”)返回的数组的索引-我通常不使用它-而element是由选择器,没有jquery包装。
我不记得“ this”将要指代什么,但是在我自己的代码中,我将使用$(element)代替它 例如
$(".selector").each(function(index, element) {
$(element).addClass("do-a-thing");
});
至于此位-$(this).siblings({...}); 首先,兄弟姐妹需要一个选择器-我猜想传递这样的代码块会把它炸掉吗?
其次,包含的.each()的父选择器用于“ [class * ='carousel-wrap-'] .carousel”-因此,它会寻找carousel的兄弟姐妹,即carousel-控制,这显然不是您想要的。
最后,窗口事件侦听器-如果您希望将其应用于特定对象,我相信在函数调用之后,您需要.bind(this)(或.bind($(element))或其他任何东西)所以:
$( window ).resize(function() {
$(this).siblings('.carousel .band').css("height", "100%")
var offsetHeight = $(this).siblings('.slick-list').outerHeight();
$(this).siblings('.carousel .band').outerHeight(offsetHeight);
}.bind(this));
否则我认为“ this”将成为窗口
您尝试执行的操作仍未达到100%-有根据的猜测,您正在尝试使光滑列表中的带子高度相等,并且光滑列表是旋转木马幻灯片(因此,它是3列或此类)?
如果是这种情况,您是否尝试过将其制成弹性盒?可能是您可以使用CSS而不是javascript来解决的问题,这始终是可取的!
祝你好运,希望对你有帮助!