【问题标题】:Jquery Accordion container height problemJquery Accordion 容器高度问题
【发布时间】:2011-02-11 19:18:30
【问题描述】:

我正在使用 JQUERY Accordion 隐藏/显示一些框。我在其中一些内容中有很多内容,当我单击显示标题时,所有内容都填满了#mainContent - 我可以看到这一点,因为背景颜色设置为#mainContent

我认为这是我需要在内联 javascript 中添加的函数?

<script type="text/javascript">
    $(function() {
        $("#accordion").accordion({
            collapsible: true,
            hideOnStartup: true,
            active: false,
            autoHeight: true
        });
    });
    $(function() {
        $("#accordion_two").accordion({
            collapsible: true,
            hideOnStartup: true,
            active: false,
            autoHeight: true
        });
    });
    </script>

<div id="mainContent">

<div id="accordion">
<h4>Header</h4>

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis aliquam elementum placerat. Donec scelerisque pulvinar justo, nec bibendum neque suscipit et. Phasellus consequat consequat justo, eu lacinia nibh imperdiet id. Phasellus sit amet erat quis dui hendrerit egestas. Sed dolor libero, lobortis eu varius sit amet, pretium eget nisl. Suspendisse venenatis suscipit orci blandit dignissim. Suspendisse ac tortor eleifend felis cursus tempus. Aenean sodales, quam sed aliquam placerat, ligula augue varius enim, quis ultrices mauris tellus at elit. Aliquam erat volutpat. Donec eleifend ipsum eros. Ut laoreet, ligula ut eleifend imperdiet, dolor arcu tempus velit, quis convallis urna mi ut justo. Sed egestas, lectus eget ornare congue, mauris enim condimentum erat, ut condimentum ipsum neque non purus. Etiam orci nulla, imperdiet vel tempus in, placerat id dolor. Integer convallis consequat odio. Sed ornare urna turpis, ut malesuada purus.
</div>


<div id="accordion_two">
<h4>Header Two</h4>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis aliquam elementum placerat. Donec scelerisque pulvinar justo, nec bibendum neque suscipit et. Phasellus consequat consequat justo, eu lacinia nibh imperdiet id. Phasellus sit amet erat quis dui hendrerit egestas. Sed dolor libero, lobortis eu varius sit amet, pretium eget nisl. Suspendisse venenatis suscipit orci blandit dignissim. Suspendisse ac tortor eleifend felis cursus tempus. Aenean sodales, quam sed aliquam placerat, ligula augue varius enim, quis ultrices mauris tellus at elit. Aliquam erat volutpat. Donec eleifend ipsum eros. Ut laoreet, ligula ut eleifend imperdiet, dolor arcu tempus velit, quis convallis urna mi ut justo. Sed egestas, lectus eget ornare congue, mauris enim condimentum erat, ut condimentum ipsum neque non purus. Etiam orci nulla, imperdiet vel tempus in, placerat id dolor. Integer convallis consequat odio. Sed ornare urna turpis, ut malesuada purus.
</div>

</div>

【问题讨论】:

    标签: jquery css accordion


    【解决方案1】:

    你的 CSS 是什么样的?确保包含的 div(即您的主要内容)已溢出:隐藏。当我使用 ui 中的手风琴时,我通常有这种布局

    <div id=wrapper>
        <div class='accordion'>
          <div class='header'><a href='javascript:void(0)'>Header 1</div>
          <div class='content'>Accordion content here</div>
          <div class='header'><a href='javascript:void(0)'>Header 2</div>
          <div class='content'>Accordion content here</div> 
        </div>
       </div>
    
       //css
       #wrapper{overflow:hidden;}
    

    设置包装器和手风琴的高度和宽度,您应该设置好。

    【讨论】:

    • 我认为它现在有效,只需要弄清楚为什么折叠的 div 底部会出现间隙。谢谢!
    • 我正在使用 curveycorners.js 将我的 DIV 的边缘修整为主要内容,但由于某种原因,当我将其设置为 #maincontent 并且我折叠使用手风琴的所有包含的 div内容消失我认为它与使用溢出有关:隐藏你会推荐我做什么?
    • 我对curveycorners.js不是很熟悉,因为我通常使用滑动门css技术来处理角落(主要是因为大多数时候任何js对内容的更改都会在IE中显示为闪烁的onload) .您可能能够摆脱溢出:自动(在 IE 中,当您打开一个新部分时,手风琴可能会在包含元素之外闪烁)。抱歉,我不会在这个问题上提供太多帮助。
    【解决方案2】:

    您的 HTML 有点错误。要折叠的部分需要在这样的内部 div 中:

    <div id="mainContent">
    
      <div id="accordion">
        <h4>Header</h4>
        <div>
          Lorem ...
        </div>
      </div>
    
      <div id="accordion_two">
        <h4>Header Two</h4>
        <div>
          Lorem ...
        </div>
      </div>
    
    </div>
    

    此外,您不需要两个手风琴。你可以这样做:

    <div id="mainContent">
    
      <div id="accordion">
        <h4>Header</h4>
        <div>
          Lorem ...
        </div>
    
        <h4>Header Two</h4>
        <div>
          Lorem ...
        </div>
    
      </div>
    </div>
    

    示例:http://jsfiddle.net/ChrisMH/S4Qfx/

    【讨论】:

    • 我刚刚检查了我的实际 HTML,所有需要折叠的部分都包含在内部 div 中,但它仍然重叠 #mainContent 这可能是 javascript 的问题吗?
    猜你喜欢
    • 2013-07-13
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多