使用窗口xp主题(不是经典)时垂直滚动条不起作用

时间:2009-06-08 22:42:34

标签: javascript internet-explorer scrollbar windows-themes

这可能听起来很疯狂,直到我亲眼看到它才相信它。

单击滚动条或箭头之间的空格时,垂直滚动条不会滚动。你必须拖动它才能让它滚动。这只发生在丑陋的默认主题(不是Windows经典)。

滚动条后面有一些重的javascript,可以在页面上滚动另一个DIV。

有没有人以前遇到过这个?为什么主题会影响IE的渲染?!只有IE!

修改: 当您处于“非经典”XP主题(默认丑陋的主题)时会发生此问题。切换主题不会导致此问题,但如果从默认设置切换到经典,它确实会修复它。

4 个答案:

答案 0 :(得分:3)

添加

时有用吗?
<!--[if IE]><meta http-equiv="MSThemeCompatible" content="no"><![endif]-->

到你的页面来源?当我启用非经典主题时,它可以很好地解决IE中的故障。请注意条件注释是存在的,以便firefox不解析标记(因为它有时会搞砸firefox中的滚动条)。

答案 1 :(得分:2)

我在XP主题中的IE7中遇到了与垂直滚动条相同的问题。经过多次实验,我终于找到了解决方案。我不知道这个解决方案适合你的情况。

带有渲染滚动条的容器(下例中的div#scroll)必须大于18px。下面的任何数字都会导致垂直条被禁用。

<div id="scroll">
     <div id="fill">
     </div>
</div>

样式表,例如:

#fill{
    width: 1px;
    height: 1000px;
}

#scroll {
    width: 18px; /* This has to be larger than or equal to 18. */
    height: 50px;
    overflow-y: scroll;
}

谢谢, 格雷斯

答案 2 :(得分:1)

为了避免某些Windows限制,IE重新实现了几乎所有网页上可见的控件。

  

The Old New Thing : Windowless controls are not magic

     

&LT;摘录&GT;

     

Internet Explorer团队重新实现了网页所需的所有控件。他们有自己的无窗口复选框控件,无窗口列表框控件,   无窗口编辑框,依此类推。除了重现窗口控件的所有功能外,Internet Explorer人员还必须重现“外观”   窗口控制,直到最后一个像素。 (功能如   DrawThemeBackgroundDrawFrameControl在这里证明非常有用。)

     

如果我没记错的话,唯一仍在窗口的元素是the <SELECT> element

     

如果你眯着眼睛,你可以看到一些他们没有钉住它的地方。例如,如果在文本框中单击鼠标右键,则会缺少“从右到左阅读顺序”和“插入Unicode控制字符”等选项。另一个例子,请注意当您将鼠标悬停在它们上方时,IE的滚动条不会亮起。

     

&LT; /摘录&GT;

如果没有看到实现页面的代码,我猜这是“IE的控件不能原生化”的另一种表现形式。

如果您与Microsoft签订了支持合同,我建议您通过该渠道向他们投诉;如果没有,请查看您是否在microsoft.public.internetexplorer.general新闻组中收到任何回复。回到IE6,他们用KB824145打破了滚动条,并用KB832894修复了它,所以这些问题没有发生并且之前已经解决了。

答案 3 :(得分:0)

首先,我会开始说IE浏览器是一个糟糕的浏览器,在某些情况下,您在开发Web应用程序时无法控制问题。

在这种情况下,我没有遇到过这样的问题,谷歌搜索也没有提到任何关于这个主题的内容。我会说你的代码中必定会出现一些奇怪的错误。很可能它不会在很多系统中破坏,所以除非它是一个非常重要的应用程序(销售,政府......),否则你可以这样做。

这样看:谁将windows的风格改为经典?极客。极客们使用IE吗?没有。^^ ......开玩笑,但不是真的。

如果这很重要,我需要看看你的实际代码“滚动条背后有一些重的javascript,它会驱动页面上另一个DIV的滚动。