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 innerHTML 的一些问题的解决方法
Jun 22 Javascript
jquery判断小数点两位和自动删除小数两位后的数字
Mar 19 Javascript
基于jquery的手风琴图片展示效果实现方法
Dec 16 Javascript
全面解析Bootstrap布局组件应用
Feb 22 Javascript
Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享
Jun 07 Javascript
Bootstrap中的Panel和Table全面解析
Jun 13 Javascript
javascript中json基础知识详解
Jan 19 Javascript
页面点击小红心js实现代码
May 26 Javascript
JS实现带阴历的日历功能详解
Jan 24 Javascript
浅谈React Native 传参的几种方式(小结)
May 21 Javascript
layui默认选中table的CheckBox复选框方法
Sep 19 Javascript
react antd实现动态增减表单
Jun 03 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
关于file_get_contents返回为空或函数不可用的解决方案
2013/06/24 PHP
php+jQuery ajax实现的实时刷新显示数据功能示例
2019/09/12 PHP
PHP使用PDO实现mysql防注入功能详解
2019/12/20 PHP
使用js修改客户端注册表的方法
2013/08/09 Javascript
JS中的log对象获取以及debug的写法介绍
2014/03/03 Javascript
js实现类似新浪微博首页内容渐显效果的方法
2015/04/10 Javascript
JS时间特效最常用的三款
2015/08/19 Javascript
超精准的javascript验证身份证号的具体实现方法
2015/11/18 Javascript
node.js连接mongoDB数据库 快速搭建自己的web服务
2016/04/17 Javascript
Bootstrap基本组件学习笔记之缩略图(13)
2016/12/08 Javascript
jquery获取transform里的值实现方法
2017/12/12 jQuery
vue路由懒加载的实现方法
2018/03/12 Javascript
vue-cli 组件的导入与使用教程详解
2018/04/11 Javascript
vue 利用路由守卫判断是否登录的方法
2018/09/29 Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
2020/03/10 Javascript
[03:04]DOTA2超级联赛专访ZSMJ “莫名其妙”的逆袭
2013/05/23 DOTA
MySQL最常见的操作语句小结
2015/05/07 Python
Python遍历指定文件及文件夹的方法
2015/05/09 Python
基于python select.select模块通信的实例讲解
2017/09/21 Python
python三大神器之fabric使用教程
2019/06/10 Python
在python里使用await关键字来等另外一个协程的实例
2020/05/04 Python
使用python实现名片管理系统
2020/06/18 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
HTML5中的nav标签学习笔记
2016/06/24 HTML / CSS
如何用canvas实现在线签名的示例代码
2018/07/10 HTML / CSS
美国求婚钻戒网站:Super Jeweler
2016/08/27 全球购物
建筑工程技术应届生自荐信
2013/09/27 职场文书
财务管理专业推荐信
2013/11/19 职场文书
校园安全演讲稿
2014/05/09 职场文书
常务副总经理任命书
2014/06/05 职场文书
2014年光棍节活动策划方案(创意集锦)
2014/09/29 职场文书
2015大学生党员自我评价范文
2015/03/03 职场文书
大学生个人简历自荐信
2015/03/06 职场文书
MySQL Shell import_table数据导入的实现
2021/08/07 MySQL
Python开发五子棋小游戏
2022/05/02 Python
CSS 鼠标选中文字后改变背景色的实现代码
2023/05/21 HTML / CSS