Jquery 宽度的继承。Bxslider

Jquery 宽度的继承。Bxslider,jquery,html,css,Jquery,Html,Css,有一个问题。我的滑块可能包含不同的图像,其宽度可达1256px。幻灯片-大约4张。 滑块下方有一个块,其宽度应等于活动图像的宽度。如何做得更好 mode: fade 我试过这个: if ($ ('. carousel. bx-wrapper. item img'). css ('display') == 'block') { var widthparent = $ ('. carousel. bx-wrapper. item img'). width (); widthparent = w

有一个问题。我的滑块可能包含不同的图像,其宽度可达1256px。幻灯片-大约4张。 滑块下方有一个块,其宽度应等于活动图像的宽度。如何做得更好

mode: fade
我试过这个:

if ($ ('. carousel. bx-wrapper. item img'). css ('display') == 'block') {
 var widthparent = $ ('. carousel. bx-wrapper. item img'). width ();
 widthparent = widthparent + 'px';
 var child = $ ('. subscribe');
 child.width (widthparent);
}
但这个解决方案是不好的。 这里的宽度继承自第一个图像

它的工作原理是:

$('.carousel .list').bxSlider({
 mode: 'fade',

 onSlideBefore: function($slideElement, oldIndex, newIndex) {
  var blockWidth = $slideElement.width();
    $('.subscribe').css('width', blockWidth);
 }
});
但是,在block.carousel width被建立为max width:1256px,every.item=1256px

要求宽度取自img,而非.item

例如,在第二种情况下,.subscribe必须等于1200px

<div class="carousel">
  <div class="bx-wrapper" style="max-width: 100%;">
    <div class="bx-viewport" style="width: 100%; overflow: hidden; position: relative; height: 508px;">
      <ul class="list" style="width: auto; position: relative;">

        <li class="item" style="float: none; list-style: none outside none; position: absolute; display: none; width: 1256px; z-index: 0;">
          <a class="link" href="">
            <img alt="" src="media/uploads/slide-1.jpg"> // width = 1000px
          </a>
        </li>

        <li class="item" style="float: none; list-style: none outside none; position: absolute; display: none; width: 1256px; z-index: 0;">
          <a class="link" href="">
            <img alt="" src="media/uploads/slide-2.jpg"> // width = 1200px
          </a>
        </li>

        <li class="item" style="float: none; list-style: none outside none; position: absolute; display: none; width: 1256px; z-index: 0;">
          <a class="link" href="">
            <img alt="" src="media/uploads/slide-3.jpg"> // width = 900px
          </a>
        </li>

        ....

如果没有代码示例,这是我的最佳选择。在slider调用中,有一个名为onSlideBefore的函数,它可以帮助您完成所要做的事情

$('.bx').bxSlider({
    onSlideBefore: function($el, old, new) {
        var blockWidth = $el.eq(new).width();
        $('.subscribe').css('width', blockWidth);
    }
});
如果没有任何代码可供使用,我不能100%确定这一点,但它应该让您走上正确的轨道