兼容IE和FIREFOX的鼠标跟随效果(...

由于以前有印象自己应该写过类似的效果,今天在一个同事需要协助的时候,很是花了一点心思在这上面。要实现的效果是鼠标移到页面整齐排列的LOGO上,显示一个详细信息的层,客户要求这个层是跟随鼠标移动的。
开始编写脚本的环境是IE7.0,花了一些时间之后,效果基本上就出来了,JAVASCRIPT脚本如下:
function viewMore(){
var Div1=document.getElementByIdx("Layer1");
Div1.style.display="block";
var x=document.documentElement.scrollLeft+event.clientX-1;
var y=document.documentElement.scrollTop+event.clientY+20;
Div1.style.left=x+'px';
Div1.style.top=y+'px';
}
调用的时候,在LOGO图片上采用的是onmousemove事件。当然,onmouseout事件也要写上,移开之后要隐藏层,这里就不多说了。
很快,代码在FIREFOX下就遇到了问题,调试的结果显示event.clientX和event.clientY有问题。在网上查了许多资料,也试过一些网友的办法,可惜问题都得不到妥善的解决,无奈之下只有自己想办法了。
其实,在编写代码的时候,我曾经在FIREFOX下测试过onclick="alert(event.clientX)"——有返回的值。回过头去再想到这个,突然脑子里有了一点想法,稍稍改动代码之后,FIREFOX下测试成功!!!代码如下:
function viewMore(xx,yy){
var Div1=document.getElementByIdx("Layer1");
Div1.style.display="block";
var x=document.documentElement.scrollLeft+xx-1;
var y=document.documentElement.scrollTop+yy+20;
Div1.style.left=x+'px';
Div1.style.top=y+'px';
}
在这里,我玩了一个小把戏,把原来代码里的event.clientX和event.clientY直接写到onmousemove="viewMore(event.clientX,event.clientY)"。呵呵,看起来这个办法比网上能找到的代码可都简单了许多,给大家共享一下,也留给自己记录一下。
Tags: 

延伸阅读

最新评论

发表评论