最近做一個(gè)網(wǎng)站論壇,為了方便會(huì)員之間相互了解,又不想再做一個(gè)頁(yè)面展示用戶資料,就想到了鼠標(biāo)劃過(guò)用戶名時(shí)在鼠標(biāo)右下角顯示div展示用戶資料這個(gè)效果,這里要注意的該方法不是給每個(gè)用戶名的旁邊都綁定一個(gè)div,當(dāng)鼠標(biāo)經(jīng)過(guò)用戶名時(shí)顯示,鼠標(biāo)離開(kāi)時(shí)隱藏,如果這樣做網(wǎng)頁(yè)加載就太耗時(shí)將了。但以前沒(méi)做過(guò),于是便想實(shí)現(xiàn)這個(gè)功能。經(jīng)過(guò)一天的學(xué)習(xí)和查閱,了解了個(gè)大概,最終實(shí)現(xiàn)了這個(gè)效果。下面列一下難點(diǎn)和實(shí)現(xiàn)方法:
一、難點(diǎn)
難點(diǎn)無(wú)非就三大塊,一個(gè)是div的定位,這個(gè)是該效果的主要難點(diǎn),之前在網(wǎng)上找了很多定位的代碼,但還是在網(wǎng)頁(yè)中不能精確定位,后來(lái)經(jīng)過(guò)自己的一些改進(jìn),還算完美;二個(gè)是通過(guò)Ajax異步加載數(shù)據(jù),這個(gè)對(duì)于有一定開(kāi)發(fā)經(jīng)驗(yàn)的老手來(lái)說(shuō)應(yīng)該算不了什么;第三個(gè)就是要用到兩個(gè)js屬性onmouSEOver和onmouseout,即鼠標(biāo)經(jīng)過(guò)和鼠標(biāo)離開(kāi)。
二、實(shí)現(xiàn)步驟
1.首先設(shè)計(jì)好要顯示用戶資料的div的樣式, 這里要注意的該方法不是給每個(gè)用戶名的旁邊都綁定一個(gè)div,當(dāng)鼠標(biāo)經(jīng)過(guò)時(shí)顯示,鼠標(biāo)離開(kāi)時(shí)隱藏,網(wǎng)頁(yè)里就一個(gè)顯示信息的div,哪里需要顯示時(shí)就定位在哪里,這要就需要把該div的定位方式設(shè)置為絕對(duì)定位。
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>真實(shí)姓名:</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>所屬地區(qū):</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
相應(yīng)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;}View Code2.定位,為了能夠精確的定位并且能夠方便的調(diào)用,所以先在頁(yè)面中放了兩個(gè)標(biāo)簽,分別用于保存當(dāng)前鼠標(biāo)的坐標(biāo)
<input type="hidden" id="pagex" /> <input type="hidden" id="pagey" />
然后用js獲取當(dāng)前坐標(biāo)并保存到標(biāo)簽中:

1 jQuery(document).ready(function ($) {2 $(document).mousemove(function (e) {3 document.getElementById("pagex").value = e.pageX;//pageX() 屬性是鼠標(biāo)指針的位置,相對(duì)于文檔的左邊緣。4 document.getElementById("pagey").value = e.pageY;//pageY() 屬性是鼠標(biāo)指針的位置,相對(duì)于文檔的上邊緣。5 }); });View Code3.鼠標(biāo)經(jīng)過(guò)和離開(kāi)事件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("未加載到數(shù)據(jù)!"); }); } function HiddenInfo() { $("#blockdiv").css({ "display": "none", }); $("#lblusername").html("") $("#lblrealname").html(""); $("#sex").html(""); $("#lbladdress").html("") $("#lblemall").html(""); }View Code4.調(diào)用
1 <a class="showuserinfo" onmouseover="ShowInfo('<%#Eval("Response_Person") %>')" onmouseout="HiddenInfo()">2 <asp:Label runat="server" ID="lbl_username" Text='<%#Eval("Response_Person") %>' /></a>效果圖:

新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注