<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style type="text/css"> #box{ width: 300px; height: 300px; margin: 80px auto 80px; border:1px solid red; } </style> </head> <body> <div id="box"></div> </body> <script type="text/javascript"> var wz = function(wrap){ var wrap = document.getElementById(wrap); var hoverDir = function(e){ var w = wrap.offsetWidth, h = wrap.offsetHeight, x = ( e.clientX - wrap.offsetLeft - ( w / 2 ) ) * ( w > h ? ( h / w ) : 1 ), y = (e.clientY - wrap.offsetTop - (h / 2)) * (h > w ? (w / h) : 1), // 上(0) 右(1) 下(2) 左(3) direction = Math.round( ( ( ( Math.atan2( y, x ) * ( 180 / Math.PI ) ) + 180 ) / 90) + 3 ) % 4, eventType = e.type, dirName = new Array('上方','右侧','下方','左侧'); if( e.type == 'mouseover' || e.type == 'mouseenter' ){ wrap.innerHTML = dirName[direction] + '进入'; }else{ wrap.innerHTML = dirName[direction] + '离开'; } } if( window.addEventListener ){ wrap.addEventListener( 'mouseover',hoverDir,false ); wrap.addEventListener( 'mouseout',hoverDir,false ); }else if( window.attachEvent ){ wrap.attachEvent( 'onmouseenter',hoverDir ); wrap.attachEvent( 'onmouseleave',hoverDir ); } } wz('box'); </script> </html>