我正在使用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>
答案 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功能似乎无法正常工作。