JQuery实现超链接鼠标提示效果的方法


Posted in Javascript onJune 10, 2015

本文实例讲述了JQuery实现超链接鼠标提示效果的方法。分享给大家供大家参考。具体分析如下:

浏览器其实已经自带了超链接提示,只需在超链接中加入title属性就可以了。但是这个提示效果的响应速度是非常缓慢的,大概要延迟1秒左右啊。我们现在需要的是当鼠标移动到超链接的那一瞬间就出现提示。这时就需要移除a标签中的title提示效果,自己动手做一个类似功能的提示。

HTML设计如下:

<p><a href="https://3water.com/" class="tooltip" title="欢迎访问三水点靠木">欢迎访问三水点靠木</a></p>

然后为class为tooltip的超链接添加mouseover和mouseout事件:

$("a.tooltip").mouseover(function (){  
    //显示 title  
}).mouseout(function (){  
    //隐藏 title  
});

实现这个效果的具体思路如下:

1. 当鼠标滑入超链接时, 创建一个div元素,div元素的内容为title属性的值。然后将创建的元素追加到文档中。为它设置x坐标和y坐标,使它显示在鼠标位置的旁边。
2. 当鼠标滑出超链接时,移除div元素。

根据分析的思路,写出如下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>";
    //创建 div 元素  
    $("body").append(tooltip); //把它追加到文档中  
    $("#tooltip")  
      .css({  
        "top": (e.pageY + y) + "px",  
        "left": (e.pageX + x) + "px" 
      }).show("fast"); //设置x坐标和y坐标,并且显示  
  }).mouseout(function(){    
    this.title = this.myTitle;  
    $("#tooltip").remove(); //移除  
  });  
});

此时的效果有两个问题:首先是当鼠标滑过后,a标签中的title属性的提示也会出现:其次是设置x坐标和y坐标的问题,由于自制的提示与鼠标的距离太近,有时候会引起无法提示的问题(鼠标焦点变化引起mouseout事件)。

为了移除a标签中的title提示功能,需要进行以下几个步骤:

1. 当鼠标滑入时,给对象添加一个新属性,并把title的值传给这个属性,然后清空属性title的值。

this.myTitle = this.title;  
s.title = "";   
var tooltip = "<div id='tooltip'>"+ this.myTitle +"<\/div>";
//创建 div 元素

2. 当鼠标滑出时,再把对象的myTitle属性的值又赋给属性title。

this.title = this.myTitle;

为什么当鼠标滑出时,要把属性值又赋给属性title呢?因为当鼠标滑出时,需要考虑再次滑入时的属性title值,如果不将myTitle的值重新赋给title属性,当再次滑入时,title的值就为空了。

为了解决第2个问题,需要重新设置提示元素的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,到这里问题都解决了,鼠标超链接提示效果实现。

希望本文所述对大家的jQuery程序设计有所帮助。

Javascript 相关文章推荐
用js+xml自动生成表格的东西
Dec 21 Javascript
菜鸟javascript基础资料整理2
Dec 06 Javascript
silverlight线程与基于事件驱动javascript引擎(实现轨迹回放功能)
Aug 09 Javascript
JS获取html对象的几种方式介绍
Dec 05 Javascript
js获取元素外链样式的方法
Jan 27 Javascript
纯javascript移动优先的幻灯片效果
Nov 02 Javascript
Bootstrap如何创建表单
Oct 21 Javascript
使用travis-ci如何持续部署node.js应用详解
Jul 30 Javascript
JS实现图片切换效果
Nov 17 Javascript
2分钟实现一个Vue实时直播系统的示例代码
Jun 05 Javascript
JS实现移动端可折叠导航菜单(现代都市风)
Jul 07 Javascript
canvas实现贪食蛇的实践
Feb 15 Javascript
jquery序列化方法实例分析
Jun 10 #Javascript
jQuery实现dialog设置focus焦点的方法
Jun 10 #Javascript
jQuery替换textarea中换行的方法
Jun 10 #Javascript
简介JavaScript中getUTCMonth()方法的使用
Jun 10 #Javascript
JavaScript中getUTCMinutes()方法的使用详解
Jun 10 #Javascript
在JS中操作时间之getUTCMilliseconds()方法的使用
Jun 10 #Javascript
jQuery获取页面元素绝对与相对位置的方法
Jun 10 #Javascript
You might like
攻克CakePHP系列二 表单数据显示
2008/10/22 PHP
WordPress中对访客评论功能的一些优化方法
2015/11/24 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
常见的5个PHP编码小陋习以及优化实例讲解
2021/02/27 PHP
表单提交时自动复制内容到剪贴板的js代码
2007/03/16 Javascript
js wmp操作代码小结(音乐连播功能)
2008/11/08 Javascript
js href的用法
2010/05/13 Javascript
js通过元素class名字获取元素集合的具体实现
2014/01/06 Javascript
js实现按钮控制图片360度翻转特效的方法
2015/02/17 Javascript
JS设置网页图片vspace和hspace属性的方法
2015/04/01 Javascript
javascript实现实时输出当前的时间
2015/04/27 Javascript
JavaScript简单实现鼠标移动切换图片的方法
2016/02/23 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
Angularjs cookie 操作实例详解
2017/09/27 Javascript
详解vue 单页应用(spa)前端路由实现原理
2018/04/04 Javascript
Node批量爬取头条视频并保存方法
2018/09/20 Javascript
jQuery实现动态添加和删除input框代码实例
2019/03/29 jQuery
在博客园博文中添加自定义右键菜单的方法详解
2020/02/05 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛 5 24 iG VS DK
2014/05/26 DOTA
Python的Django框架中URLconf相关的一些技巧整理
2015/07/18 Python
Python wxpython模块响应鼠标拖动事件操作示例
2018/08/23 Python
Python字符串的全排列算法实例详解
2019/01/07 Python
python 图像增强算法实现详解
2021/01/24 Python
html5视频常用API接口的实战示例
2020/03/20 HTML / CSS
英国最大的独立家具零售商:Furniture Village
2016/09/06 全球购物
网上常见的一份Linux面试题(多项选择部分)
2014/09/09 面试题
工业自动化专业毕业生推荐信
2013/11/18 职场文书
银行求职信个人范文
2013/12/16 职场文书
生产部管理制度
2014/01/31 职场文书
护士岗前培训自我评鉴
2014/02/28 职场文书
数控专业毕业生自荐信范文
2014/03/04 职场文书
2014年学雷锋活动总结
2014/06/26 职场文书
学校领导班子四风对照检查材料
2014/09/27 职场文书
立春观后感
2015/06/18 职场文书
Python实现滑雪小游戏
2021/09/25 Python