//隨鼠標移動的信息框
function popDiv(face,name,info,xx,yy)
{
var str="";
str+="";
str+="";
str+=""+name+"
";
str+=""+info+"";
str+="";
$('body').append(str);//在頁面上追加該元素,樣式如上已經(jīng)寫好
$(".TipDiv").css({"top":yy+"px","left":xx+"px"});//設置該元素出現(xiàn)的位置(這里是出現(xiàn)在鼠標的右邊和下邊的偏離10px位置)
}
結果如下(當鼠標指向第三條數(shù)據(jù)時,彈出該框, 并隨鼠標移動):
做到這邊,會員有了一個新的要求,就是不要彈出框隨著鼠標的移動而移動,那樣鼠標一旦離開焦點,就會移除該彈出框,操作起來不是很方便。他們要求彈出框固定,假設就在相應的數(shù)據(jù)行的右側吧,而且打開和關閉由會員自己控制,于是Ben就進行改良了...
同樣的,先設計一個id為tips的Div元素,樣式如下:
代碼如下:
#tips
{
background-color: white;
border-left: 1px solid #a6c9e2;
border-right: 1px solid #a6c9e2;
border-top:5px solid #a6c9e2;
border-bottom:5px solid #a6c9e2;
width:268px; height:60px;
z-index:9;
position:absolute;
-moz-border-radius: 5px; -webkit-border-radius: 5px;
padding:8px 18px;
}
/* 彈出層的指向圖標,left:-10 使它出現(xiàn)在整個Div的左側 */
#tips #tipsArrow { position:absolute; top:26px; left: -10px }
#tips #light
{
width:36px;
height:36px;
margin:6px 16px 16px 16px;
float:left;
}
#tips span
{
margin-top:18px;
}
#tips #close
{
width:20px;
height:16px;
border:none;
z-index:1;
left:280px;
top:6px;
position:absolute;
cursor:pointer;
}
腳本如下:
代碼如下:
$(document).ready(function(){
//時間鼠標經(jīng)過
$("ul li span").mouseover(function(){
$("#tips").remove();
var elem= $(this).parent();
var mTop=elem.offset().top;//獲取該元素的top坐標
var mLeft=elem.offset().left;//獲取該元素的left坐標
var addLeft=elem.width();//獲取該元素的寬度
var finalTop=mTop-30;//獲取最終元素出現(xiàn)的Top位置,此時-30個元素是提高這個Div的高度,讓箭頭指向對應行
var finalleft=mLeft+addLeft+20; // 獲取最終元素出現(xiàn)Left的,對應行的左邊加上行寬加上20個空元素
var num=$("li").index(elem)+1;
popDiv1(finalTop,finalleft,"提示框提醒你,這是第"+num+"行數(shù)據(jù)!");
})
})
//固定的信息框
function popDiv1(tops,lefts,messages)
{
var str="";
str="
"+messages+"
";鼠標移動到相應的數(shù)據(jù)行上面,顯示相應的提示框,右邊的打叉小圖標用以關閉整個彈出層...
設計小結:
這個設計過程的關鍵是position:absolute(絕對定位,作用是讓層在頁面上疊加),z-index(用以顯示層的疊加次序),top、left(顯示彈出頁面坐標),(offset().left,offset().top)在頁面上找到某個元素的坐標,位置找到了,就可以隨意在它的周邊定位彈出層了,其他的樣式可以根據(jù)自己的美工需求隨意調節(jié)...
源碼下載 http://xiazai.jb51.net/201010/yuanma/popDiv.rar
聲明:本網(wǎng)頁內容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com