利用JavaScript实现鼠标在文字上悬浮时弹出悬浮层

来源:互联网 发布:vscode搭建python 编辑:程序博客网 时间:2024/05/29 17:01

在人人,CSDN等一些网站,当鼠标在某个东西上悬浮时,会弹出一个悬浮层,鼠标移开悬浮层消失。比如说CSDN的通知(应该是进入写新文章的页面后页面上方的那个铃铛),具体是什么实现的呢?代码:

[html] view plaincopy
  1. <!doctype html>  
  2. <head>  
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   
  4.     <title>TEST</title>  
  5. </head>  
  6. <style type="text/css">  
  7.     body{  
  8.         position: relative;  
  9.     }  
  10.     #inform{  
  11.           position: absolute;  
  12.           top: 20px;  
  13.           width: 350px;  
  14.           max-height: 250px;           /* 设置最大高度,当高度达到此值时出现滚动条 */  
  15.           z-index: 10;  
  16.           background-color: #E0E5E5;   
  17.           overflow: auto;              /* 自动添加滚动条 */  
  18.           box-shadow:0px 0px 10px #000;   /* 外阴影 */  
  19.           display: none;   /* 默认隐藏 */  
  20.     }  
  21.     #informTable{  
  22.         table-layout:fixed;         /* 用于实现表格td自动换行的部分代码*/  
  23.         width: 325px;  
  24.     }  
  25.   
  26.     #informTable tr td{  
  27.         width: 325px;  
  28.         height:30px;  
  29.         font-size: 16px;  
  30.         font-family: Georgia;  
  31.         color: #555555;  
  32.         word-wrap:break-word;   /*自动换行*/  
  33.         padding: 0 0 0 0;  
  34.     }  
  35.     #informTable tr td:hover{  
  36.         background-color: #D9D9D9;   
  37.     }  
  38.     #inform hr{  
  39.         border:1;  
  40.         width: 325px;  
  41.         margin-bottom: 0px;  
  42.     }  
  43.   
  44. </style>  
  45. <script type="text/javascript">  
  46.       //显示悬浮层  
  47.       function showInform(){  
  48.         document.getElementById("inform").style.display='block';  
  49.          // document.getElementById("inform").css("display","block");  
  50.       }  
  51.       //隐藏悬浮层  
  52.       function hiddenInform(event){  
  53.          var informDiv = document.getElementById('inform');  
  54.          var x=event.clientX;    
  55.          var y=event.clientY;    
  56.          var divx1 = informDiv.offsetLeft;    
  57.          var divy1 = informDiv.offsetTop;    
  58.          var divx2 = informDiv.offsetLeft + informDiv.offsetWidth;    
  59.          var divy2 = informDiv.offsetTop + informDiv.offsetHeight;  
  60.          if( x < divx1 || x > divx2 || y < divy1 || y > divy2){    
  61.               document.getElementById('inform').style.display='none';    
  62.          }    
  63.           
  64.       }  
  65.   
  66.   
  67. </script>  
  68. <body>   
  69.     <a id="btn" onMouseOver="javascript:showInform();"  onMouseOut="hiddenInform()">  
  70.         警告消息  
  71.     </a>  
  72.     <div id="inform"  onMouseOver="javascript:showInform();"  onMouseOut="hiddenInform(event)">  
  73.            <table id="informTable">  
  74.               <tr>  
  75.                 <td>  
  76.                      编号5005车辆发车间隔异常  
  77.                     <hr/>  
  78.                 </td>  
  79.               </tr>  
  80.               <tr>  
  81.                 <td>  
  82.                      编号5005车辆发车间隔异常  
  83.                     <hr/>  
  84.                 </td>  
  85.               </tr>  
  86.               <tr>  
  87.                 <td>  
  88.                      编号5005车辆发车间隔异常  
  89.                     <hr/>  
  90.                 </td>  
  91.               </tr>  
  92.               <tr>  
  93.                 <td>  
  94.                      编号5005车辆发车间隔异常  
  95.                     <hr/>  
  96.                 </td>  
  97.               </tr>  
  98.               <tr>  
  99.                 <td>  
  100.                      编号5005车辆发车间隔异常  
  101.                     <hr/>  
  102.                 </td>  
  103.               </tr>  
  104.               <tr>  
  105.                 <td>  
  106.                      编号5005车辆发车间隔异常  
  107.                     <hr/>  
  108.                 </td>  
  109.               </tr>  
  110.               <tr>  
  111.                 <td>  
  112.                      编号5005车辆发车间隔异常  
  113.                     <hr/>  
  114.                 </td>  
  115.               </tr>  
  116.               <tr>  
  117.                 <td>  
  118.                      编号5005车辆发车间隔异常  
  119.                     <hr/>  
  120.                 </td>  
  121.               </tr>  
  122.            </table>  
  123.     </div>  
  124. </body>  
  125. </html>  


效果图如下:

0 0
原创粉丝点击