JQuery實(shí)現(xiàn)超鏈接鼠標(biāo)提示效果的方法
本文實(shí)例講述了JQuery實(shí)現(xiàn)超鏈接鼠標(biāo)提示效果的方法。分享給大家供大家參考。具體分析如下:
瀏覽器其實(shí)已經(jīng)自帶了超鏈接提示,只需在超鏈接中加入title屬性就可以了。但是這個(gè)提示效果的響應(yīng)速度是非常緩慢的,大概要延遲1秒左右啊。我們現(xiàn)在需要的是當(dāng)鼠標(biāo)移動(dòng)到超鏈接的那一瞬間就出現(xiàn)提示。這時(shí)就需要移除a標(biāo)簽中的title提示效果,自己動(dòng)手做一個(gè)類似功能的提示。
HTML設(shè)計(jì)如下:
然后為class為tooltip的超鏈接添加mouseover和mouseout事件:
$("a.tooltip").mouseover(function (){ //顯示 title }).mouseout(function (){ //隱藏 title });
實(shí)現(xiàn)這個(gè)效果的具體思路如下:
1. 當(dāng)鼠標(biāo)滑入超鏈接時(shí), 創(chuàng)建一個(gè)div元素,div元素的內(nèi)容為title屬性的值。然后將創(chuàng)建的元素追加到文檔中。為它設(shè)置x坐標(biāo)和y坐標(biāo),使它顯示在鼠標(biāo)位置的旁邊。
2. 當(dāng)鼠標(biāo)滑出超鏈接時(shí),移除div元素。
根據(jù)分析的思路,寫(xiě)出如下JQuery代碼:
$(function(){ var x = 10; var y = 20; $("a.tooltip").mouseover(function(e){ this.myTitle = this.title; this.title = ""; var tooltip = "<div id='tooltip'>"+ this.myTitle +"<\/div>"; //創(chuàng)建 div 元素 $("body").append(tooltip); //把它追加到文檔中 $("#tooltip") .css({ "top": (e.pageY + y) + "px", "left": (e.pageX + x) + "px" }).show("fast"); //設(shè)置x坐標(biāo)和y坐標(biāo),并且顯示 }).mouseout(function(){ this.title = this.myTitle; $("#tooltip").remove(); //移除 }); });
此時(shí)的效果有兩個(gè)問(wèn)題:首先是當(dāng)鼠標(biāo)滑過(guò)后,a標(biāo)簽中的title屬性的提示也會(huì)出現(xiàn):其次是設(shè)置x坐標(biāo)和y坐標(biāo)的問(wèn)題,由于自制的提示與鼠標(biāo)的距離太近,有時(shí)候會(huì)引起無(wú)法提示的問(wèn)題(鼠標(biāo)焦點(diǎn)變化引起mouseout事件)。
為了移除a標(biāo)簽中的title提示功能,需要進(jìn)行以下幾個(gè)步驟:
1. 當(dāng)鼠標(biāo)滑入時(shí),給對(duì)象添加一個(gè)新屬性,并把title的值傳給這個(gè)屬性,然后清空屬性title的值。
this.myTitle = this.title; s.title = ""; var tooltip = "<div id='tooltip'>"+ this.myTitle +"<\/div>"; //創(chuàng)建 div 元素
2. 當(dāng)鼠標(biāo)滑出時(shí),再把對(duì)象的myTitle屬性的值又賦給屬性title。
為什么當(dāng)鼠標(biāo)滑出時(shí),要把屬性值又賦給屬性title呢?因?yàn)楫?dāng)鼠標(biāo)滑出時(shí),需要考慮再次滑入時(shí)的屬性title值,如果不將myTitle的值重新賦給title屬性,當(dāng)再次滑入時(shí),title的值就為空了。
為了解決第2個(gè)問(wèn)題,需要重新設(shè)置提示元素的top和left的值,代碼如下所示,為top增加了10px,為left增加了20px:
var x = lO; var y = 20; $("#tooltip").css({ "top": (e.pageY+y) + "px", "left": (e.pageX+x) + "px" });
OK,到這里問(wèn)題都解決了,鼠標(biāo)超鏈接提示效果實(shí)現(xiàn)。
希望本文所述對(duì)大家的jQuery程序設(shè)計(jì)有所幫助。
相關(guān)文章
jQuery插件Zclip實(shí)現(xiàn)完美兼容個(gè)瀏覽器點(diǎn)擊復(fù)制內(nèi)容到剪貼板
本文將結(jié)合實(shí)例講解如何使用一款基于jQuery的插件——Zclip來(lái)實(shí)現(xiàn)復(fù)制內(nèi)容到剪貼板的功能。其實(shí)IE上有個(gè)方法可以實(shí)現(xiàn)點(diǎn)擊復(fù)制,但是由于只是IE獨(dú)有,所以我們不提倡。而Zclip是利用一個(gè)隱藏的flash文件來(lái)完成復(fù)制的功能,關(guān)鍵是它兼容當(dāng)前各主流瀏覽器。2015-04-04基于Jquery的文字滾動(dòng)跑馬燈插件(一個(gè)頁(yè)面多個(gè)滾動(dòng)區(qū))
文字逐行或多行滾動(dòng)跑馬燈插件,基于Jquery。命名為Jquery.RollTitle。支持在一個(gè)頁(yè)面聲明多個(gè)滾動(dòng)區(qū) (就為了要這點(diǎn)才寫(xiě)了這個(gè))2010-07-07jquery實(shí)現(xiàn)動(dòng)態(tài)畫(huà)圓
這篇文章主要給大家分享了一段jquery實(shí)現(xiàn)動(dòng)態(tài)畫(huà)圓代碼,需要的朋友可以參考下2014-12-12jQuery實(shí)用小技巧_輸入框文字獲取和失去焦點(diǎn)的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇jQuery實(shí)用小技巧_輸入框文字獲取和失去焦點(diǎn)的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08jquery 得到當(dāng)前頁(yè)面高度和寬度的兩個(gè)函數(shù)
得到當(dāng)前頁(yè)面高度和寬度的兩個(gè)函數(shù)2010-02-02AspNet中使用JQuery上傳插件Uploadify詳解
Uploadify是JQuery的一個(gè)上傳插件,實(shí)現(xiàn)的效果非常不錯(cuò),帶進(jìn)度顯示。不過(guò)官方提供的實(shí)例時(shí)php版本的,本文將詳細(xì)介紹Uploadify在Aspnet中的使用2015-05-05jquery.validate[.unobtrusive]和Bootstrap實(shí)現(xiàn)tooltip錯(cuò)誤提示問(wèn)題分析
這篇文章主要介紹了jquery.validate[.unobtrusive]和Bootstrap實(shí)現(xiàn)tooltip錯(cuò)誤提示問(wèn)題分析的相關(guān)資料,需要的朋友可以參考下2016-10-10