zoukankan      html  css  js  c++  java
  • 鼠标划过用户名时在鼠标右下角显示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=" 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>

     

    View Code


    相应css代码

     

     

     1   #blockdiv{

     2     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         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         240px;

    18         height:140px;

    19         margin:10px 0 10px 10px;

    20         float:left;

    21         overflow:hidden;text-overflow:ellipsis; white-space:nowrap;}

     

    View Code

    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             });        });

     

    View Code

    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("");

            }

     

    View Code

    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>

    效果图:

     

     

     

  • 相关阅读:
    UE4 UnLoadStreamLevel
    UE4 Xml读写
    UE4 保存为bitmap
    C++ 不定参数(转)
    C++ 默认参数(转载)
    Tuple初探
    遗传算法matlab实现
    蚁群算法matlab实现
    汉诺塔问题C++实现
    较优H圈matlab实现
  • 原文地址:https://www.cnblogs.com/taofx/p/4139948.html
Copyright © 2011-2022 走看看