Jquery中accordion的heightStyle: "fill"无法正常工作

4

这里输入图片描述 - 随着容器尺寸的变化,我可以自定义 #backlogEpic 中定义的宽度(526px),但是高度无法自定义。为了填充其容器分配的垂直空间,我已将 heightStyle 选项设置为“fill”,但仍然无法正常工作。它仍然使用“auto”来获取默认高度。如何自定义我的高度?如果您查看图像,扩展面板会超出容器。

     html:-  
        <div id="backlogEpic" class="ui-widget-content">
        <div id="backlogAccordion">  
        <--- accordian code---->   
        </div> 
        </div>

    css :-  
      #backlogEpic{  
      padding: 10px;    height: 200px;    width: 526px;    right: 25px;    }  

   javascript:-  


    $(function() {

      $( "#backlogEpic" ).resizable({
         minHeight:140,
          minWidth: 150,
          resize: function() {
              $( "#backlogAccordion" ).accordion( "refresh" );
          }
      });
      $( "#backlogAccordion" ).accordion({
          heightStyle: "fill"
      });    });
3个回答

1
我一直在解决和你相同的问题。我的网站使用了jQuery 1.9.1和jQueryUI 1.10.2。我一直在尝试修改父级div,但是所有的文档和讨论都没有起到作用。昨天我发现了SO主题jquery 1.9 accordion height issue,其中Mottie建议修改每个手风琴面板的CSS而不是父级:
#accordion .ui-accordion-content {    
    max-height: 400px;
    overflow-y: auto;
}

在昨天以来的有限测试中,这解决了手风琴超出容器的问题。

0

外观表明存在一个未清除的浮动,导致包装容器出现了这种情况。尝试在您的手风琴后添加一个“clear”元素:

.clearer{
clear:both:
height:1px;
margin-bottom:-1px;
}

<div id="backlogEpic" class="ui-widget-content">
    <div id="backlogAccordion">  
    <--- accordian code---->   
    </div> 
    <div class='clearer'></div>
</div>

0

尝试这个。在创建事件上:

  1. 计算手风琴标头数量 --> c
  2. 计算内容高度:父元素高度 (#content) - (c * 手风琴高度)
  3. 设置内容 (.ui-accordion-content) 外部高度;

你应该注意到jquery中的高度 vs innerheight vs outerheight。

$( "#accordion" ).accordion({
    heightStyle: "fill",
    collapsible:true,
    active:false,
    animate:300,
    create: function( event, ui ) {
        var c=$(".ui-accordion-header").length;
        var h=$("#content").height() - (c* $(".ui-accordion-header").outerHeight(true));
        $(".ui-accordion-content").outerHeight(h);
    }
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接