Javascript IE6上交叉故障
我有一个带有一些内容的Javascript IE6上交叉故障,javascript,internet-explorer-6,onscroll,Javascript,Internet Explorer 6,Onscroll,我有一个带有一些内容的。我给这个div一个id属性,oDIV,并通过这个小脚本将一个函数绑定到onscroll事件: window.onload = { document.getElementById("oDiv").onscroll = function() { document.getElementById("tooltip").className = "sTooltip"; this.onscroll = null; }; } 我在di
。我给这个div一个id属性,oDIV
,并通过这个小脚本将一个函数绑定到onscroll
事件:
window.onload = {
document.getElementById("oDiv").onscroll = function() {
document.getElementById("tooltip").className = "sTooltip";
this.onscroll = null;
};
}
我在div中添加了一些简单的CSS,这样就会出现一个垂直滚动条。内容向下延伸了很多,有很多东西需要滚动
#oDiv {
border: 1px solid black;
float: left;
height: 300px;
overflow: auto;
overflow-x: hidden;
padding: 0;
padding-right: 40px;
clear: left;
}
无论如何,如果用户试图滚动,我希望出现一个工具提示,提醒用户有一个过滤器选项来隐藏他们必须滚动的部分内容
在Firefox和更流行的浏览器中,它工作得很好
我的问题是,我必须支持IE6,这种方法在IE6中确实有效,但有一个小问题。如果通过左键单击并按住“抓取”滚动条,并在触发事件时继续拖动,则滚动条会提前释放。强制用户再次单击拖动栏。这是个小问题,但我想知道为什么
我只打算触发此事件一次,只有当滚动启动时
如果一个库或框架已经解决了这个奇怪的行为,你能告诉他们解决这个问题的来源吗
此外,我认为计时库等用于确定“他们停止滚动的点”的方法对于这一点来说是过分的。这可能是因为IE正在暂停以呈现“工具提示”。不要在工具提示上使用
display:none
,尝试使用visibility:hidden
,然后切换到visibility:visibility
我测试了这个,但仍然有相同的故障。不过,这让我找到了答案。改变className
属性似乎会强制暂停渲染。放置style.display=“block”代码>或style.visibility=“visible”代码>在函数内部而不是重新分配类似乎消除了我在IE6中遇到的暂停。