Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 即在某些情况下显示隐藏的div_Javascript_Html - Fatal编程技术网

Javascript 即在某些情况下显示隐藏的div

Javascript 即在某些情况下显示隐藏的div,javascript,html,Javascript,Html,在谷歌搜索了很多ie bug之后,我仍然没有找到关于我遇到的问题的描述 最初的情况是标准的。我们有一个工具提示,它实际上是一个隐藏的div,将显示在给定位置的鼠标上方。div使用display:none隐藏,并包含一个包含内容的表。我们尝试使用不同的库来显示div scriptaculous和jQuery Cluetip,但效果相同 问题是: 只要里面的东西和我的窗户的宽度相适应,一切都很好。但是当我调整它的大小直到水平滚动条被激活时,当工具提示被激活时,隐藏div的内容将显示在页面的末尾 这真

在谷歌搜索了很多ie bug之后,我仍然没有找到关于我遇到的问题的描述

最初的情况是标准的。我们有一个工具提示,它实际上是一个隐藏的div,将显示在给定位置的鼠标上方。div使用display:none隐藏,并包含一个包含内容的表。我们尝试使用不同的库来显示div scriptaculous和jQuery Cluetip,但效果相同

问题是: 只要里面的东西和我的窗户的宽度相适应,一切都很好。但是当我调整它的大小直到水平滚动条被激活时,当工具提示被激活时,隐藏div的内容将显示在页面的末尾

这真的很奇怪,因为它只发生在这些前提下。当涉及到多个工具提示时,浏览器甚至可能崩溃,在Vista下,整个系统都会随之崩溃


我知道解释起来有点复杂,但我希望至少有人听说过这个bug,并能为我指出正确的方向。

我做工具提示的方法是使用可见性隐藏和可见。关闭鼠标后,我将x和y设置为0,以将工具提示移出查看空间

这仅在位置设置为绝对时有效

编辑:显示工具提示时如何定位工具提示:


我通过更改top和left的css值来定位工具提示

box.cssleft,e.pageX+1; box.csstop,e.pageY+1

其中“e”是我的事件变量,来自:

mousemovefunction{}

将width css属性设置为in IE中的自动定义将导致元素占用分配给它的整个空间。如果元素没有应用宽度,则这可能导致页面的宽度越来越宽。这通常会导致浏览器崩溃,具体取决于操作系统。最好的选择是将其设置为null

这是基于IE6的实际经验编码,可能不一定适用于IE7+


要记住的另一件事是,大多数浏览器都会进行所谓的延迟渲染,这意味着如果某个元素隐藏在页面上,它就不会进行渲染。它甚至不会承认它的存在是一个潜在的可见对象,直到它被隐藏。这意味着在你展示它之前,你不知道它会有多大。如果你想弄清楚一旦你让它可见,它会有多大,这可能会引起问题。基本上,唯一的解决方法是取消隐藏它,读取它的大小,重新隐藏它,然后继续。

您可能需要发布一些代码。你不需要库来显示div,你可以用简单的CSS来实现,所以我怀疑。工具提示div在你的HTML中的什么地方?在中间还是在结尾?是工具提示出现的问题吗?您说当工具提示被激活时,隐藏div的内容将显示在页面的末尾。当工具提示被激活时,这个div不是应该显示出来吗?@SLC:我猜库的决定是使用了一些奇特的效果。但你是对的,他们可能会造成问题。例如,如果我看得正确,cluetip会生成一些额外的div,这些div位于页面的末尾。但这两个库都会导致相同的行为@Diodeus:div在我的HTML中间。Segfault:页面末尾仅显示div的内容。这是不应该的。工具提示本身正确显示在鼠标指针所在的位置。问题可能是您不想使用“隐藏”属性,但想使用“显示:无”属性。不同之处在于显示:none不会保留空间。在显示工具提示时,您是如何放置它的?我认为这就是使用这些库的要点,这样我们可以通过鼠标指针轻松地定位它。我通过更改top和left的css值来定位工具提示。您可以使用函数中调用的事件变量来检索鼠标位置。mousemovefunctione{box.cssleft,e.pageX+5;box.csstop,e.pageY+1;}问题不在于无休止的页面,而只是在页面末尾显示的div的内容。切换到其他工具提示或div时,浏览器可能会崩溃。div没有任何宽度,但其内部的表格设置为100%。