zoukankan      html  css  js  c++  java
  • 利用javaScript实现鼠标在文字上悬浮时弹出悬浮层

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

    <!doctype html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    	<title>TEST</title>
    </head>
    <style type="text/css">
        body{
            position: relative;
        }
    	#inform{
              position: absolute;
    		  top: 20px;
    		   350px;
    		  max-height: 250px;           /* 设置最大高度,当高度达到此值时出现滚动条 */
    		  z-index: 10;
    		  background-color: #E0E5E5; 
    		  overflow: auto;              /* 自动添加滚动条 */
    		  box-shadow:0px 0px 10px #000;   /* 外阴影 */
    		  display: none;   /* 默认隐藏 */
    	}
    	#informTable{
    		table-layout:fixed;         /* 用于实现表格td自动换行的部分代码*/
    		 325px;
    	}
    
    	#informTable tr td{
    		 325px;
    		height:30px;
    		font-size: 16px;
    		font-family: Georgia;
    		color: #555555;
    		word-wrap:break-word;   /*自动换行*/
    		padding: 0 0 0 0;
    	}
    	#informTable tr td:hover{
    		background-color: #D9D9D9; 
    	}
    	#inform hr{
    		border:1;
    		 325px;
    		margin-bottom: 0px;
    	}
    
    </style>
    <script type="text/javascript">
          //显示悬浮层
          function showInform(){
          	document.getElementById("inform").style.display='block';
             // document.getElementById("inform").css("display","block");
          }
          //隐藏悬浮层
          function hiddenInform(event){
          	 var informDiv = document.getElementById('inform');
          	 var x=event.clientX;  
             var y=event.clientY;  
          	 var divx1 = informDiv.offsetLeft;  
             var divy1 = informDiv.offsetTop;  
             var divx2 = informDiv.offsetLeft + informDiv.offsetWidth;  
             var divy2 = informDiv.offsetTop + informDiv.offsetHeight;
             if( x < divx1 || x > divx2 || y < divy1 || y > divy2){  
                  document.getElementById('inform').style.display='none';  
             }  
            
          }
    
    
    </script>
    <body> 
        <a id="btn" onMouseOver="javascript:showInform();"  onMouseOut="hiddenInform()">
        	警告消息
        </a>
    	<div id="inform"  onMouseOver="javascript:showInform();"  onMouseOut="hiddenInform(event)">
               <table id="informTable">
               	  <tr>
               	  	<td>
               	  		 编号5005车辆发车间隔异常
               	  		<hr/>
               	  	</td>
               	  </tr>
               	  <tr>
               	  	<td>
               	  		 编号5005车辆发车间隔异常
               	  		<hr/>
               	  	</td>
               	  </tr>
               	  <tr>
               	  	<td>
               	  		 编号5005车辆发车间隔异常
               	  		<hr/>
               	  	</td>
               	  </tr>
               	  <tr>
               	  	<td>
               	  		 编号5005车辆发车间隔异常
               	  		<hr/>
               	  	</td>
               	  </tr>
               	  <tr>
               	  	<td>
               	  		 编号5005车辆发车间隔异常
               	  		<hr/>
               	  	</td>
               	  </tr>
                  <tr>
               	  	<td>
               	  		 编号5005车辆发车间隔异常
               	  		<hr/>
               	  	</td>
               	  </tr>
               	  <tr>
               	  	<td>
               	  		 编号5005车辆发车间隔异常
               	  		<hr/>
               	  	</td>
               	  </tr>
               	  <tr>
               	  	<td>
               	  		 编号5005车辆发车间隔异常
               	  		<hr/>
               	  	</td>
               	  </tr>
               </table>
    	</div>
    </body>
    </html>


    效果图如下:

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    转发:前端新人少走弯路
    react 表单(受控组件和非受控组件)
    axios封装的拦截器的应用
    react与redux的一点心得(理解能力有限,蜗牛进度)
    redux一些自习时候自己写的的单词
    react路由的跳转和传参
    学以致用,react学习前奏准备阶段
    原型,原型链,给予原型和class的继承
    rpm安装和卸载
    .net项目发布到iis
  • 原文地址:https://www.cnblogs.com/dingxiaoyue/p/4931753.html
Copyright © 2011-2022 走看看