国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript Title、alt提示(Tips)實現源碼解讀

2019-11-21 00:02:47
字體:
來源:轉載
供稿:網友
而對于圖片標簽img也有一個alt屬性可以起到類似的作用。但很顯然這種提示框太單調了,為此有人用JavaScript實現了漂亮的提示框效果,這種效果常用在WEB游戲中,其中下圖的網易郵箱與迅雷影視頁面就用到這種效果,雖然彼此實現效果有些差異,但整體實現思路是不變的。為了方便大家了解實現的細節,以方便定制自己想要的效果,我上網找了一段不錯的源碼,并對其進行了詳細的注釋,希望對大家有幫助。

  

含注釋代碼:
復制代碼 代碼如下:

/***********************************************
  一個JavaScript Title、alt提示(Tips)源碼解讀
代碼注釋:唐國輝
作者博客:http://webflash.cnblogs.com
***********************************************/

//定義getElementById快捷方式
function $(obj)
{
if(typeof(obj)=='object')
{
return obj;
}
else
{
return document.getElementById(obj);
}
}
//定義document.write快捷方式,代替復雜的DOM操作
function $P(str)
{
document.write(str);
}
//腳本錯誤屏蔽
window.onerror=function ()
{
return true;
};
/*
定義變量:
pltsPop(提示內容文字,來自對象的alt或title屬性,不包含HTML)
toolTip(提示內容DOM對象,即后面定義的content變量)
pltsPoptop(上方提示標題DOM對象)
pltsPopbot(下方提示標題DOM對象)
topLeft(左上角提示標題DOM對象)
botLeft(左下方提示標題DOM對象)
topRight(右上角提示標題DOM對象)
botRight(右下方提示標題DOM對象)
*/
var pltsPop,toolTip,pltsPoptop,pltsPopbot,topLeft,botLeft,topRight,botRight;
//設置提示窗口相對提示對象的位置偏移量
var pltsoffsetX=10;
var pltsoffsetY=15;
var pltsTitle="";
//創建一個絕對定位的隱藏圖層
$P('<div id=/"pltsTipLayer/" style="display:none; position:absolute; z-index:10001" mce_style="display:none; position:absolute; z-index:10001"></div>');
//把剛創建的層對象賦值給一個變量,此語句一定要出現在層創建之后
var pltsTipLayer=$('pltsTipLayer');
//定義鼠標移到對象上時處理函數,主要提取alt或title屬性值,并初始化提示框HTML及樣式
function PltsMouseOver(ev)
{
//兼容不同瀏覽器的事件和對象獲取
var Event=window.event||ev;
var o=Event.srcElement||Event.target;
//如果對象alt屬性存在并且不等于空,就把它的值存到dypop屬性,并清空當前alt內容
if(o.alt!=null&&o.alt!="")
{
o.dypop=o.alt;
o.alt="";
}
//如上,對具有title屬性的對象作同樣的判斷和處理,清空title屬性值是讓對象默認的提示效果失效
if(o.title!=null&&o.title!="")
{
o.dypop=o.title;
o.title="";
}
pltsPop=o.dypop;
if(pltsPop!=null&&pltsPop!=""&&typeof(pltsPop)!="undefined")
{
//把上面創建的提示層顯示出來,暫時移到左邊很遠,雖然顯示但用戶看不到
pltsTipLayer.style.left=-1000;
pltsTipLayer.style.display='';
/*
格式化提示信息,把其中的/n換成<br/>,比如像下面這樣定義title值,顯示出來會是作者和性別各一行,因為Tom和Sex之間有/n:
<div title="Author:Tom
Sex:male">Article title...</div>
*/
var Msg=pltsPop.replace(//n/g,"<br/>");
Msg=Msg.replace(//0x13/g,"<br/>");
//定義正則表達式檢查提示內容是否含有類似這樣的內容“{提示標題}”,而且{}和{{}是排除在處的,如果沒有就默認用“簡介”作為提示標題
var re=//{(.[^/{]*)/}/ig;
if(!re.test(Msg))
{
pltsTitle="<label style="/" mce_style="/""color:#000/">簡介</label>";
}
else
{
re=//{(.[^/{]*)/}(.*)/ig;
//提取{}中的內容
pltsTitle=Msg.replace(re,"$1")+" ";
//把{內容},包括{}在內的內容替換為空,得到最終提示正文的內容
re=//{(.[^/{]*)/}/ig;
Msg=Msg.replace(re,"");
}
//定義提示框內容Html與Style,并把獲得的相關內容放到對應變量中
var content="<dl id=/"toolTip/" style="/" mce_style="/""-moz-opacity:0.85;opacity:0.85;FILTER:alpha(opacity=85);padding:2px;background:#fff;/"><dd id=/"pltsPoptop/" class=/"toolTipTitle/" style="/" mce_style="/""line-height:20px;/"><p id=/"topLeft/" class=/"left/"><b><label style="/" mce_style="/""color:#ffffff/"> 主站蜘蛛池模板: 万安县| 绥化市| 海宁市| 大城县| 克山县| 全南县| 邵武市| 石河子市| 郑州市| 郓城县| 北流市| 讷河市| 抚顺市| 乌拉特后旗| 衡水市| 雷州市| 闽侯县| 抚宁县| 文昌市| 股票| 禹州市| 湘西| 宝应县| 蓬安县| 武功县| 科技| 禄丰县| 永平县| 泸溪县| 屏边| 丰原市| 奇台县| 竹山县| 新建县| 西畴县| 霍林郭勒市| 桐梓县| 临沧市| 上蔡县| 沂南县| 福州市|