javascript tips提示框組件實(shí)現(xiàn)代碼
function tips(obj,tag){
var tip = document.createElement('div'),arg= arguments[2],left,top; //創(chuàng)建tipbox
var bodywid= document.documentElement.clientWidth; //這里也可以替換為容器的寬度$(id).outerWidth();
var abs = obj.getElementsByTagName(tag);
tip.className="tip_bd";
obj.appendChild(tip);
for(var i=0,len=abs.length;i<len;i++){
hover(abs[i],function(){
var content = arg||this.getAttribute('tip'),text;
left = position(this).left,top=position(this).top;
content?tip.innerHTML=content:tip.innerHTML="暫無(wú)內(nèi)容!";
if(left+parseInt(getStyle(tip,'width'))>bodywid) //判斷當(dāng)前位置是否超過(guò)最大寬度
text='right:'+(bodywid-left)+'px;left:auto;';
else
text='left:'+(left+this.offsetWidth)+'px;';
text +='top:'+(top+this.offsetHeight)+'px;';
tip.style.cssText=text;
text='';
tip.style.display='block';
},function(){
tip.style.display='none';
});
}
}
function hover(el,fnOver, fnOut){//鼠標(biāo)滑過(guò)函數(shù)
addEvent(el,'mouseover',fnOver);
addEvent(el,'mouseout',fnOut);
}
function addEvent(el,type,fn){ //綁定事件
if(el.attachEvent) {
el['e'+type+fn] = fn; //IE下拷貝元素引用,使this指向el對(duì)象而不是window
el[type+fn] = function(){el['e'+type+fn](window.event);}
el.attachEvent('on'+type, el[type+fn]);
}else
el.addEventListener(type, fn, false);
}
function position(el){//dom節(jié)點(diǎn)的絕對(duì)位置
if(el&&el.nodeType == 1)
return {'left':el.getBoundingClientRect().left+document.documentElement.scrollLeft,'top':el.getBoundingClientRect().top+document.documentElement.scrollTop};
}
function getStyle(obj,styleName){//獲取當(dāng)前樣式屬性
if(obj.currentStyle)//ie
return obj.currentStyle[styleName];
else{ //ff
var $arr=obj.ownerDocument.defaultView.getComputedStyle(obj, null);
return $arr[styleName];
}
}
tips(document.getElementById('tips'),'a');
一個(gè)簡(jiǎn)單的類(lèi)似title的提示效果,但現(xiàn)實(shí)內(nèi)容可以很豐富,以上js另存為tip.js,下面是使用的demo。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<meta name="copyright" content="" />
<meta name="keywords" content="" />
<meta name="description" content="" />
<title>提示信息框</title>
<link rel="stylesheet" type="text/css" href="style/css/tip.css" />
<style>
#wrap{line-height:22px;padding:20px;}
#tips .tip_bd{border:1px solid green;width:100px;position:absolute;background:#fff;z-index:9999;text-align:center;display:none;}
#tips{border:1px solid #ccc;padding:0 10px;}
</style>
</head>
<body>
<h1>提示信息框</h1>
<br/><br/><br/><br/>
<div id="tips">
閱讀了<a href="#" tip="腳本之家">腳本之家</a>今天發(fā)布的IT文章《30個(gè)提高Web程序執(zhí)行效率的好經(jīng)驗(yàn)》,這30條準(zhǔn)則對(duì)我們web開(kāi)發(fā)是非常有用的,不則是知其然而不知其所<a href="#" tip="腳本之家2">腳本之家</a>以然。下面是我對(duì)這些準(zhǔn)則的理解和分析,有些有關(guān)JS性能的準(zhǔn)則,我也測(cè)試了它們<a href="#">腳本之家</a>的差異,大家可以下載DEMO頁(yè)面,如有理解不正確的地方,請(qǐng)大家指教。
</div>
</body>
<script type="text/javascript" src="tips.js"></script>
</html>
- Some tips of wmi scripting in jscript (1)
- ASP小貼士/ASP Tips javascript tips可以當(dāng)桌面
- JavaScript Tips 使用DocumentFragment加快DOM渲染速度
- JavaScript Title、alt提示(Tips)實(shí)現(xiàn)源碼解讀
- 新鮮出爐的js tips提示效果
- jQuery懸停文字提示框插件jquery.tooltipster.js用法示例【附demo源碼下載】
- JavaScript調(diào)試的多個(gè)必備小Tips
- bootstrap tooltips在 angularJS中的使用方法
- 總結(jié)分享10個(gè)JavaScript代碼優(yōu)化小tips
相關(guān)文章
沒(méi)有document.getElementByName方法
document.getElementByName方法沒(méi)有document.getElementsByName得到的是標(biāo)簽的數(shù)組,下面為大家詳細(xì)介紹下具體的使用,感興趣的朋友可以參考下,希望對(duì)大家有所幫助2013-08-08javascript利用控件對(duì)windows的操作實(shí)現(xiàn)原理與應(yīng)用
假如要發(fā)送漢字的聊天框的內(nèi)容的話(huà),我們也要從windows消息機(jī)制下手,先找到聊天消息的句柄(可以利用findwindow函數(shù)或者用spy工具哈),然后在找到上面的聊天框的句柄,接著我們就可以想這個(gè)句柄發(fā)送WM_SETTEXT的消息了2012-12-12利用JavaScript如何查詢(xún)某個(gè)值是否數(shù)組內(nèi)
這篇文章主要給大家介紹了關(guān)于利用JavaScript如何查詢(xún)某個(gè)值是否數(shù)組內(nèi)的相關(guān)資料,文中通過(guò)示例代碼分別介紹了實(shí)現(xiàn)該問(wèn)題的一些解決方法是否可行,需要的朋友可以參考借鑒,下面跟著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-07-07ajaxControlToolkit AutoCompleteExtender的用法
昨天在搜索中使用了這個(gè)控件,不過(guò)不知道為什么在IE中反應(yīng)比較慢2008-10-10JavaScript實(shí)現(xiàn)事件的中斷傳播和行為阻止方法示例
這篇文章主要給大家介紹了利用JavaScript實(shí)現(xiàn)事件的中斷傳播和行為阻止的方法示例,文中給出了詳細(xì)的介紹和示例代碼,相信對(duì)大家的理解和學(xué)習(xí)具有一定的參考借鑒價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-01-01原生js實(shí)現(xiàn)的金山打字小游戲(實(shí)例代碼詳解)
這篇文章主要介紹了原生js實(shí)現(xiàn)的金山打字小游戲,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03深入淺析javascript立即執(zhí)行函數(shù)
在Javascript中,任何function在執(zhí)行的時(shí)候都會(huì)創(chuàng)建一個(gè)執(zhí)行上下文,因?yàn)闉閒unction聲明的變量和function有可能只在該function內(nèi)部,這個(gè)上下文,在調(diào)用function的時(shí)候,提供了一種簡(jiǎn)單的方式來(lái)創(chuàng)建自由變量或私有子function。2015-10-10Javascript調(diào)用函數(shù)方法的幾種方式介紹
這篇文章主要介紹了Javascript調(diào)用函數(shù)方法的幾種方式介紹,本文講解了func()、(function(arg){})(window)、func.bind(sth)()、func.call()、func.apply()等5種方式,需要的朋友可以參考下2015-03-03