本來(lái)想做一個(gè)集合浮動(dòng)定位和鼠標(biāo)跟隨的tooltips效果,但發(fā)現(xiàn)定位和鼠標(biāo)跟隨在一些關(guān)鍵的地方還是不同的,還是分開(kāi)來(lái)吧。 這個(gè)效果本身難度不大,主要在程序結(jié)構(gòu)和擴(kuò)展中下了些功夫,務(wù)求用起來(lái)更方便,能用在更多的地方。
程序特點(diǎn)
- 同一個(gè)提示框用在多個(gè)觸發(fā)元素時(shí),只需一個(gè)實(shí)例;
- 顯示和隱藏分別有點(diǎn)擊方式和觸發(fā)方式選擇;
- 能設(shè)置延時(shí)顯示和隱藏;
- 有25種預(yù)設(shè)定位位置;
- 可在預(yù)設(shè)定位基礎(chǔ)上,再自定義定位;
- 可設(shè)置自適應(yīng)窗口定位;
完整實(shí)例下載(點(diǎn)擊下載)
運(yùn)行代碼框
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運(yùn)行]
JavaScript,定位,浮動(dòng),提示,tooltips,FixedTips,Tip 程序說(shuō)明
Tip對(duì)象:
Tip對(duì)象就是用來(lái)顯示提示信息的容器,程序用Tip屬性表示。這個(gè)沒(méi)什么要求,程序初始化時(shí)會(huì)對(duì)它進(jìn)行一些設(shè)置。 首先進(jìn)行下面設(shè)置:
this._cssTip.margin = 0; this._cssTip.position = "absolute"; this._cssTip.visibility = "hidden"; this._cssTip.display = "block"; this._cssTip.zIndex = 99; this._cssTip.left = this._cssTip.top = "-9999px";
其中margin設(shè)為0是為了避免一些定位問(wèn)題,用visibility來(lái)隱藏而不是display是因?yàn)槌绦蛐枰@取Tip的offsetWidth、offsetHeight,還需要設(shè)置left和top是避免因Tip占位出現(xiàn)的滾動(dòng)條。 因?yàn)門(mén)ip可能會(huì)在其他定位元素里面,所以還要設(shè)兩個(gè)offset修正參數(shù):
var iLeft = iTop = 0, p = this.Tip.offsetParent; while (!(p === document.body || p === document.documentElement)) { iLeft += p.offsetLeft; iTop += p.offsetTop; p = p.offsetParent; }; this._offsetleft = iLeft; this._offsettop = iTop;
最后給Tip的mouseover加一個(gè)事件,具體后面再說(shuō)明。
出處:藍(lán)色理想
責(zé)任編輯:bluehearts
上一頁(yè) 下一頁(yè) JavaScript 浮動(dòng)定位提示效果 [2]
◎進(jìn)入論壇網(wǎng)頁(yè)制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評(píng)論。
|