鼠标显示大图的效果,类似淘宝(show a enlarge image in mouse hover)

本文探讨了在不同浏览器中实现事件监听的兼容性问题,特别关注如何在Firefox中使用事件参数,避免了图片跟随鼠标效果的问题。通过修改代码,实现了在Firefox中也能正常触发事件,同时保持了代码的简洁性和兼容性。

之前发布过一段代码,http://www.cnblogs.com/blodfox777/articles/1208224.html

 

但前不久发现有个重大问题!不支持Firefox!

 

因为window.event在IE和Opera里都是全局变量,而在Firefox中只面向即时触发的事件,所以,我们要将event作为参数传递给方法,才能兼容Firefox,修改后的代码如下,比起原来的代码,缺少了图片跟随鼠标效果,因为用onmousemove事件的话,在Firefox中会造成图片闪烁不停,所以,只能退而求其次,希望高手能搞定这个问题:

 

 

< html  xmlns ="http://www.w3.org/1999/xhtml" >
< head  id ="Head1"  runat ="server" >
    
< title > Event </ title >
    
< script  type ="text/javascript" >  
    
function  showPic(sUrl,evt){ 
     
var  x,y; 
     x 
=  evt.clientX; 
     y 
=  evt.clientY; 
     document.getElementById(
" Layer1 " ).style.left  =  x; 
     document.getElementById(
" Layer1 " ).style.top  =  y; 
     document.getElementById(
" Layer1 " ).innerHTML  =   " <img height=200 width=400 src=\ ""  + sUrl +  " \ " > "
     document.getElementById(
" Layer1 " ).style.display  =   " block "
    } 
    
function  hiddenPic(){ 
     document.getElementById(
" Layer1 " ).innerHTML  =   ""
     document.getElementById(
" Layer1 " ).style.display  =   " none "
    } 
    
</ script >
</ head >
< body >
    
< form  id ="form1"  runat ="server" >
    
< div >
        
< div  id ="Layer1"  style ="display: none; position: absolute; z-index: 1;" >
        
</ div >
        
< img  src ="http://forums.asp.net/Themes/FAN/style/i/logo.png"  onmouseout ="hiddenPic();"
            onmouseover
="showPic(this.src,event);"   />
        
< p >
        
</ p >
    
</ div >
    
</ form >
</ body >
</ html >

转载于:https://www.cnblogs.com/blodfox777/archive/2008/08/19/1271579.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值