在多个CSS类的EACH元素上具有相等的高度和窗口调整大小功能

时间:2019-06-26 19:04:31

标签: javascript

不是编码专家,请找到有关如何使用“每种”的解决方案。但是,然后吸取与等高线相结合。请帮忙! 加载完所有内容后,“滑动列表”就是与最高幻灯片的高度相等的列表。然后,我希望每个“轮播-环绕-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>

1 个答案:

答案 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来解决的问题,这始终是可取的!

祝你好运,希望对你有帮助!