你看不到代码么?js:onmouseover触发一个函数,在函数中可以输出你看到的面板

解决方案 »

  1.   

    面板只是一个对象而已 ,它里面有一些属性,比如:
    左右位置,边框颜色,背景颜色,大小 ,以及显示内容等。
    var panel = function(left ,right,color ,size ,content){
            //这里你可以去构造这些属性
    }它还有一些方法,比如显示,隐藏panel.prototype.show = function(){};
    panel.prototype.hide = function(){};
    那么现在我们要做的就是创建这个对象 ,然后在鼠标移动到某个位置 去调这个对象的方法而已当然我不知道csdn是不是按我说的去做的 ,但我说的是比较标准的做法。
      

  2.   

    取鼠标:function handlerMM(e){
    if (isNav=="net") {
    x = e.pageX+25;
    y = e.pageY+25;

    if (isNav=="ie"){
    x = event.x+document.body.scrollLeft;
    y = event.y+document.body.scrollTop+10;
    }
    }
      

  3.   

    感谢楼上的大大们回答,不过那个+25是怎么来的,我看到这些scrollTop之类的加上不明数字头都大了,经常看到这种代码,不知道啥意思,是工具栏菜单栏的高度???
      

  4.   

    哦,看了看源代码,知道是怎么回事了.
    function showMenu(event){
            _stopMouseOver(event);
            panelAdmin=document.getElementById("panelAdmin");
            var bt=event.srcElement||event.target;
            panelAdmin.style.display="block";
            panelAdmin.style.left=bt.offsetLeft-5+"px";
            panelAdmin.style.top=realOffset(bt).y+bt.offsetHeight-2+"px";
    }
    原来是根据鼠标事件所触发源控件对象,找到其offset,然后根据这个决定面板位置
    不过,它的减5,减2,----->x|
    |
    |
    V
    y   看了一下位置,向左是负,向下是负???
      

  5.   

    做一点错位是为了让panel和触发对象有一点重合.
    如果两者不重合,鼠标在移向panel期间经过两者的间隙时,会触发mouseout事件,导致panel消失.
    最好触发事件时,无论是显示还是隐藏,都用setTimeout做一下延迟,更符合人的习惯.
      

  6.   

    Recite MSDN classic code :)
    不像这种方式理解不了的人
      

  7.   

    我是菜鸟,如果我厉害,也不会来问了.Recite MSDN classic code :) 
    不像这种方式理解不了的人
    ---------------------
    就因为菜,才要多读.