【问题标题】:JQuery Accordion: Resizing My Header ControlJQuery Accordion:调整我的标题控件的大小
【发布时间】:2009-07-06 17:38:08
【问题描述】:

我正在使用 JQuery 手风琴。 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 之前),底部是我试图在其中滚动的部分。 “内容” 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>

【问题讨论】:

    标签: javascript jquery jquery-ui accordion


    【解决方案1】:

    在展开菜单之前和之后,您的浏览器中有滚动条吗?

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

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

    希望对您有所帮助。

    更新: 我刚刚找到了a website,它讨论了如何解决滚动条问题。只是想让其他遇到此问题的人更干净。

    【讨论】:

    • 我认为你是对的。我会对此进行更多试验,但这听起来很有可能。
    【解决方案2】:

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

    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 调用了吗?这个 sn-p 显然只是获取标题高度,并且等于内容 div 高度。问题是(只有在 IE 中你才知道)clientHeight 函数总是返回“0”。我用 header.offsetHeight 替换了这些,一切都很好。

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

    【讨论】:

    • 很好,很高兴你发现了问题。您应该选择此“答案”作为正确答案,以便人们知道它已解决。
    猜你喜欢
    • 1970-01-01
    • 2014-07-19
    • 2010-10-14
    • 2011-02-18
    • 1970-01-01
    • 2011-11-10
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多