最近做一个网站论坛,为了方便会员之间相互了解,又不想再做一个页面展示用户资料,就想到了鼠标划过用户名时在鼠标右下角显示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>