鼠标划过用户名时在鼠标右下角显示div展示用户资料

最近做一个网站论坛,为了方便会员之间相互了解,又不想再做一个页面展示用户资料,就想到了鼠标划过用户名时在鼠标右下角显示div展示用户资料这个效果, 这里要注意的该方法不是给每个用户名的旁边都绑定一个div,当鼠标经过用户名时显示,鼠标离开时隐藏,如果这样做网页加载就太耗时将了。但以前没做过,于是便想实现这个功能。经过一天的学习和查阅,了解了个大概,最终实现了这个效果。下面列一下难点和实现方法:

一、难点

难点无非就三大块,一个是div的定位,这个是该效果的主要难点,之前在网上找了很多定位的代码,但还是在网页中不能精确定位,后来经过自己的一些改进,还算完美;二个是通过ajax异步加载数据,这个对于有一定开发经验的老手来说应该算不了什么;第三个就是要用到两个js属性onmouseover和onmouseout,即鼠标经过和鼠标离开。

二、实现步骤

1.首先设计好要显示用户资料的div的样式,  这里要注意的该方法不是给每个用户名的旁边都绑定一个div,当鼠标经过时显示,鼠标离开时隐藏,网页里就一个显示信息的div,哪里需要显示时就定位在哪里,这要就需要把该div的定位方式设置为绝对定位。

html代码:

 1  <div class="blockdiv" id="blockdiv">
 2             <div class="pic">
 3                 <img src="../../Users/images/搜狗截图20140729230133.png" id="imguserhead" />
 4             </div>
 5             <div class="box">
 6                 <table width="220" border="0" style="overflow: hidden; text-overflow: ellipsis; white-space: nowrap">
 7                     <tr>
 8                         <td style="width: 70px;">用户名:</td>
 9                         <td>
10                             <label id="lblusername"></label>
11                         </td>
12                     </tr>
13                     <tr>
14                         <td>真实姓名:</td>
15                         <td>
16                             <label id="lblrealname"></label>
17                         </td>
18                     </tr>
19                     <tr>
20                         <td>性别:</td>
21                         <td>
22                             <label id="sex"></label>
23                         </td>
24                     </tr>
25                     <tr>
26                         <td>所属地区:</td>
27                         <td>
28                             <label id="lbladdress"></label>
29                         </td>
30                     </tr>
31                     <tr>
32                         <td>邮箱:</td>
33                         <td>
34                             <label id="lblemall"></label>
35                         </td>
36                     </tr>
37                 </table>
38                 <div style="text-align: left; color: green; line-height: 40px; height: 30px; display: none;" id="messagediv ">正在加载中...</div>
39             </div>
40
41         </div>

相应css代码

 1   #blockdiv{
 2     width:380px;
 3     height:160px;
 4     float:left;
 5     display:none;
 6     border: 1px solid #ccc;  position: absolute; z-index: 1; opacity: 0.1; background: white
 7     }
 8     .pic{
 9         width:100px;
10         height:100px;
11         border:1px solid #ccc;
12         border-radius:10px;
13         float:left; margin:10px;
14         overflow:hidden;
15         }
16     .box{
17         width:240px;
18         height:140px;
19         margin:10px 0 10px 10px;
20         float:left;
21         overflow:hidden;text-overflow:ellipsis; white-space:nowrap;}

2.定位,为了能够精确的定位并且能够方便的调用,所以先在页面中放了两个标签,分别用于保存当前鼠标的坐标

<input type="hidden" id="pagex" />
        <input type="hidden" id="pagey" />

然后用js获取当前坐标并保存到标签中:

1  jQuery(document).ready(function ($) {
2      $(document).mousemove(function (e) {
3                 document.getElementById("pagex").value = e.pageX;//pageX() 属性是鼠标指针的位置,相对于文档的左边缘。
4                 document.getElementById("pagey").value = e.pageY;//pageY() 属性是鼠标指针的位置,相对于文档的上边缘。
5             });        });

3.鼠标经过和离开事件js代码

   function ShowInfo(username) {
            $("#blockdiv").css({
                "display": "block",
                "left": document.getElementById(‘pagex‘).value,
                "top": document.getElementById(‘pagey‘).value,
            });
            $("#messagediv").css("display", "block");
            $.getJSON("../ashx/GetUserInfo.ashx?name=" + username,
                function (data) {
                    if (data != null) {
                        $("#lblusername").html(data[0].User_Count)
                        $("#lblrealname").html(data[0].User_name);
                        $("#sex").html(data[0].User_Sex);
                        $("#lbladdress").html(data[0].User_Address)
                        $("#lblemall").html(data[0].User_Email);
                        if (data[0].User_HeadImg != null&&data[0].User_HeadImg != "") {
                            $("#imguserhead").attr("src", "../../Users/" + data[0].User_HeadImg.toString().substring(3));

                        }
                        else {
                            $("#imguserhead").attr("src", "../../Users/images/搜狗截图20140729230133.png");
                        }
                        $("#messagediv").css("display", "none");
                    }
                    else
                        $("#messagediv").html("未加载到数据!");
                });
        }
        function HiddenInfo() {
            $("#blockdiv").css({
                "display": "none",
            });

            $("#lblusername").html("")
            $("#lblrealname").html("");
            $("#sex").html("");
            $("#lbladdress").html("")
            $("#lblemall").html("");
        }

4.调用

1  <a class="showuserinfo" onmouseover="ShowInfo(‘<%#Eval("Response_Person") %>‘)" onmouseout="HiddenInfo()">
2                                             <asp:Label runat="server" ID="lbl_username" Text=‘<%#Eval("Response_Person") %>‘ /></a>
时间: 2024-08-06 20:00:57

鼠标划过用户名时在鼠标右下角显示div展示用户资料的相关文章

JS实现图片自动播放,并在鼠标悬停某个圆点时,图片改变为其代表的图片。

如题,我们将实现这一效果. 首先是html5的部分: <!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="CSS/CarouselFigure.css"> <scr

CSS3实战开发: 手把手教大家实战开发鼠标划过图片动画特效

各位网友大家好,我是陌上花会开,当然大家也可以叫我陌陌.今天这篇文章,我将手把手带领大家实战开发一个鼠标划过图片时的动画特效.在这里我不会给大家提供案例的源码下载,但是本人可以保证,只要大家跟着我的思路,一步步将代码复制到本地,一定会得到同样的运行效果.希望大家明白我的用心.好了不废话,直接进入今天的主题吧. 在今天这个案例里,我准备3个素材,一张背景图,两张风景图片.这个大家可以到网上自行下载. 在写代码之前,我先给大家展示一下,动画特效的效果图. 鼠标花过前: 当鼠标划过图片时,图片将逐渐变

javascript 鼠标划词,弹出选取的词

很多时候,我们要使用到鼠标划词,然后获得划过的词文字内容,根据这个需求,写了如下代码,可以进行拓展. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div id="box"> 是客户端javascr

[Axure RP] – 鼠标滑入按钮时自动下拉表单的设计示例

转:http://blog.qdac.cc/?p=2197 Axure RP 是个好东东呀,大大方便了程序员与客户之间的前期调研时的交流.不过有一些控制并没有鼠标移入和移出的操作,比如 HTML 按钮,为了模拟鼠标移入或移出时动态显示下拉列表啥的效果,我们使用了动态面板来做处理.当然了,条条大路通罗马,这条大路也许不是最佳的,仅供参考. 1.拖一个动态面板到编辑区: 2.双击添加一个状态,我们命名为“正常”,以代表鼠标没有滑过时的状态: 3.双击“正常”状态,进入正常状态编辑页面: 4.在动态面

判断鼠标移入移出元素时的方向

本文要介绍的是一种鼠标从一个元素移入移出时,获取鼠标移动方向的思路.这个方法可以帮助你判断鼠标在移入移出时,是从上下左右的哪个方向发生的.这个思路,是我自己琢磨出来,利用了一点曾经高中学过的数学知识,但是非常简单好理解,希望能对你有所帮助. 在线demo: http://liuyunzhuge.github.io/blog/mouse_direction/demo1.html 相关代码: https://github.com/liuyunzhuge/blog/blob/master/mouse_

关闭myeclipse中烦人的鼠标划过,自动提示功能

eclipse越来越智能,身为码农的我却越来越伤心.虽然你很智能,但请你提供一些有用的信息给我,不要乱七八槽的,不问青红皂白就塞一大堆提示给我,对不起,哥不需要这些!!! 都知道,使用myeclipse开发java,jsp,js时,鼠标划过某个类,对象,方法……会自动提示一些没有用的信息(至少对我来说),好烦人啊,终于到了忍无可忍的时候,决定将这没用的提示干掉,还我一个清静世界. 我的是myeclipse10.1,请先打开window->preferences 执行一下3步 1.java->e

JavaScript总结之鼠标划过弹出div单击出现对话框

为了满足他们的永无止境的要求,我可谓是任劳任怨啊,累断了双手,看瞎了双眼.这个是来写鼠标划过一个按钮,然后弹出一个小提示框解释,另外根据radio是否选中,判断点击后如何执行,然后执行之后再有一个确认或取消.其实部分想要的功能可以从中截取. js代码: 1 <script type="text/javascript"> 2 function sAlert_jobdel(str){ 3 var msgw,msgh,bordercolor; 4 msgw=400;//提示窗口的

使用windows打开一个文本时,鼠标右键找不到notepad

[出现问题]:notepad++已经安装在Windows中,但是当要打开一个文件时,鼠标右键却找不到notepd++ [解决办法]:打开notepad++后记事本,输入: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\Shell\NotePad++] [HKEY_CLASSES_ROOT\*\Shell\NotePad++\Command] @="\"E:\notepad\az" \"%1\&qu

js实例_当鼠标移动到某个元素上时在元素下面显示一段提示文字

效果: 当鼠标不在自动登录上时,只显示自动登录这个表单,下面的div提示则隐藏. 当鼠标移动到自动登录这个表单时,则显示下面的div提示,当鼠标移出时再将其隐藏 代码实现与原理: HTML代码: <body> <input type="checkbox" />自动登录 <div id="div1">不要再玩游戏啦!!!</div> </body> CSS代码:给id为div1的元素做一下修饰,并且将其最开始