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 相关文章推荐
不懂JavaScript应该怎样学
Apr 16 Javascript
jqgrid 简单学习笔记
May 03 Javascript
jquery getScript动态加载JS方法改进详解
Nov 15 Javascript
js函数中onmousedown和onclick的区别和联系探讨
May 19 Javascript
简约JS日历控件 实例代码
Jul 12 Javascript
javascript学习小结之prototype
Dec 03 Javascript
jquery及js实现动态加载js文件的方法
Jan 21 Javascript
JS中的BOM应用
Feb 02 Javascript
angular-tree-component的使用详解
Jul 30 Javascript
开发一个Parcel-vue脚手架工具(详细步骤)
Sep 22 Javascript
es6数组的flat(),flatMap()函数用法实例分析
Apr 18 Javascript
JavaScript实现登录窗体
Jun 22 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
日本十大最佳动漫,全都是二次元的神级作品
2019/10/05 日漫
重料打造自己的“宝马”---第三代
2021/03/02 无线电
PHP设计模式之命令模式的深入解析
2013/06/13 PHP
php版微信公众平台入门教程之开发者认证的方法
2016/09/26 PHP
浅谈PHP中new self()和new static()的区别
2017/08/11 PHP
PHP+mysql防止SQL注入的方法小结
2019/04/27 PHP
javascript编程起步(第四课)
2007/02/27 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
2013/11/19 Javascript
jQuery中document与window以及load与ready 区别详解
2014/12/29 Javascript
简单讲解jQuery中的子元素过滤选择器
2016/04/18 Javascript
Bootstrap学习笔记之css组件(3)
2016/06/07 Javascript
AngularJS基础 ng-submit 指令简单示例
2016/08/03 Javascript
react系列从零开始_简单谈谈react
2017/07/06 Javascript
基于JS代码实现简单易用的倒计时 x 天 x 时 x 分 x 秒效果
2017/07/13 Javascript
Vue组件选项props实例详解
2017/08/18 Javascript
vue综合组件间的通信详解
2017/11/06 Javascript
JS实现简单的表格增删
2020/01/16 Javascript
ES6扩展运算符和rest运算符用法实例分析
2020/05/23 Javascript
vue 使用async写数字动态加载效果案例
2020/07/18 Javascript
vue 验证两次输入的密码是否一致的方法示例
2020/09/29 Javascript
[48:30]LGD vs infamous Supermajor小组赛D组 BO3 第一场 6.3
2018/06/04 DOTA
Python的ORM框架SQLObject入门实例
2014/04/28 Python
对Python 简单串口收发GUI界面的实例详解
2019/06/12 Python
pyqt5之将textBrowser的内容写入txt文档的方法
2019/06/21 Python
python实现简易版学生成绩管理系统
2020/06/22 Python
css3进行截取替代js的substring
2013/09/02 HTML / CSS
澳大利亚UGG工厂直销:Australian Ugg Boots
2017/10/14 全球购物
Habitat家居英国官方网站:沙发、家具、照明、厨房和户外
2019/12/12 全球购物
德国家具、照明、家居用品网上商店:Wayfair.de
2020/02/13 全球购物
销售心得体会
2014/01/02 职场文书
2014年幼儿园后勤工作总结
2014/11/10 职场文书
老干部局2015年度工作总结
2015/10/22 职场文书
2016婚礼主持词开场白
2015/11/24 职场文书
只用40行Python代码就能写出pdf转word小工具
2021/05/31 Python
Java Spring 控制反转(IOC)容器详解
2021/10/05 Java/Android
MySQL数据库索引的最左匹配原则
2021/11/20 MySQL