JQuery手风琴:调整我的页眉控制

时间:2009-07-06 17:38:09

标签: javascript jquery jquery-ui accordion

我正在使用JQuery Accordion。一切都很好的FireFox。但是,在IE7中,当我单击文档中的一个链接以扩展其中一个手风琴菜单标题时,我的标题服务器控件将重新调整大小(缩小)。如何停止重新调整屏幕尺寸?这是有问题的JavaScript的问题:

if (!$('h3.ReferenceBackgroundHeader', '#References').hasClass('ui-state-active')) {

                $("#References").accordion('activate', 0);

            }

            window.scrollTo(0, $('#References').offset().top);
            return false;

我想要的是.accordion('activate',indexval);不更改标题格式。


很奇怪..在IE中必须要解决这个问题。如果我清空我的功能并运行:

window.scroll(0,900);

我仍然在顶部松开我的服务器控制权?!有人有建议吗?


也许这就是问题..页面实际上由两个div组成。顶部div用于显示标题控件(在MasterPages的日期之前),而底部是我试图在其中滚动的部分。 “content”div是我需要滚动的能力。 “标题”div是滚动时消失的那个。有人可以救我吗? :)

<body>
<form id="Form1" method="post" runat="server">
    <div id="header">
        <uc1:Header ID="headerControl" runat="server"></uc1:Header>
    </div>
    <div id="content" style="overflow:auto">
        <asp:PlaceHolder ID="contentPlaceholder" runat="server"></asp:PlaceHolder>
    </div>
</form>

2 个答案:

答案 0 :(得分:2)

在展开菜单之前和之后,浏览器中是否有滚动条?

可能会发生的事情是,在展开菜单之前,所有内容都适合屏幕,因此浏览器不会为您提供滚动条;但是当您展开菜单时,它需要更多空间,因此浏览器会添加滚动条,从而导致网页“缩小”。

如果不在css文件中设置大min-height,我不确定如何解决该问题,以便始终显示滚动条。

希望有所帮助。

更新: 我刚刚找到了a website,其中讨论了如何修复滚动条问题。只是想让遇到这个问题的其他人更加清洁。

答案 1 :(得分:0)

所以我明白了。我正在研究我继承的遗留代码。我正在吠叫错误的树。我在页面标题中发现以下代码让我感到悲伤:

function resizeContentWindowScrollBar() {
         var contentDiv = document.getElementById("content");
         var header = document.getElementById("header");

         if (header != null) {
             var desiredHeight = document.body.clientHeight - header.clientHeight;

             if (desiredHeight > 0) {
                 contentDiv.style.height = (document.body.clientHeight - header.clientHeight) + "px";

             }
         }


     }

注意header.clientHeight调用?这个片段显然只是获得标题高度,并且这等于内容div高度。问题是(并且只在IE中记住你)clientHeight函数总是返回“0”。我用header.offsetHeight替换了这些,一切都很好。

因此,在IE中我的clientHeight功能似乎无法正常工作。