目前页面是这样的:
一个多行多列的表格,上面排列着很多图片和文字。
要实现效果:
当鼠标滑到某张图片或某段文字上时,显示出详细信息(就是再弹一DIV,这个没问题)DIV上有超链可以点。DIV位置要随着滑过的图片位置不同而改变。现在问题:
1、只用onmouseover事件的话,弹出的DIV不会消失,会挡住其他图片。如果加上onmouseout事件隐藏DIV,这样又会点不到DIV上的超链,因为离开图片DIV就消失了。如何解决?
2、DIV我定义为绝对位置,根据鼠标位置来变化,给DIV定位方法我写到了图片的onmouseover中。但图片是有范围的,在图片范围内移动鼠标,这个DIV也会跟着动,怎么让DIV不动,只有在移动到下一张图片的时候再改变位置?我想过根据图片位置定位。但其中还有很多文字,文字位置获取不到啊。而且就是获取到了,文字如果很长的话,DIV也会随鼠标动的。目前就这两个问题,各位给看看,谢谢了

解决方案 »

  1.   

    1.可以在onmouseout中设一个setTimeout
    2.你可以对这个div的DOM对象设一个flag,如element.yourflag,在onmouseover中显示div后设为true,在onmouseout设为false
      

  2.   

    参考:
    1)
    onmouseover=显示DIV
    onmouseout=function(){timer=setTimeout(隐藏DIV,300)}DIV:
    onmouseover=clearTimeout(timer)
    onmouseout=隐藏DIV2)
    DIV位置=对象的top+修正值/left+修正值
    --对象=<img>/<span>文字</span>
      

  3.   

    楼上两位:
    第一个问题一定要用settimeout吗?这样鼠标离开图片后过一段时间DIV自动关闭 
    可这样也不行啊  起码要求鼠标在DIV上时一直都不能关闭。
      

  4.   

    3L朋友也有一样的问题吗?
    用TIME倒是也可以,我回去试试,
    2L朋友,第2个问题我没看太懂,是即时的减去鼠标当前位置和最开始位置的差么?
      

  5.   

    用2L朋友的方法实现了,但有N多的图片,怎么能一起吧这方法加上,每个图片都要写onmouseover太累啦。
    我用.tt img{ star : expression(onmouseover=aa())} 还出错,,是不是我写错了?
    显示图片的表格也是在一个DIV上,我是用父DIV引用的这个样式表,但现在鼠标只要经过这个div的范围就会触发事件,
    应该是经过图片才能出发啊