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 相关文章推荐
获取当前网页document.url location.href区别总结
May 10 Javascript
自己的js工具 Cookie 封装
Aug 21 Javascript
jquery文字上下滚动的实现方法
Mar 22 Javascript
VS2008中使用JavaScript调用WebServices
Dec 18 Javascript
JavaScript的类型、值和变量小结
Jul 09 Javascript
javascript+css3 实现动态按钮菜单特效
Feb 06 Javascript
在javascript中使用com组件的简单实现方法
Aug 17 Javascript
原生JS实现圣旨卷轴展开效果
Mar 06 Javascript
jsonp跨域请求实现示例
Mar 13 Javascript
原生js实现简单的焦点图效果实例
Dec 14 Javascript
浅谈webpack4.x 入门(一篇足矣)
Sep 05 Javascript
webpack4实现不同的导出类型
Apr 09 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
php下使用无限生命期Session的方法
2007/03/16 PHP
php mysql数据库操作分页类
2008/06/04 PHP
apache和php之间协同工作的配置经验分享
2013/04/08 PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
2014/03/08 PHP
Yii2 RESTful中api的使用及开发实例详解
2016/07/06 PHP
PHP安装BCMath扩展的方法
2019/02/13 PHP
JavaScript格式化数字的函数代码
2010/11/30 Javascript
基于jquery的文章中所有图片width大小批量设置方法
2013/08/01 Javascript
标题过长使用javascript按字节截取字符串
2014/04/24 Javascript
javascript闭包入门示例
2014/04/30 Javascript
详解Webwork中Action 调用的方法
2016/02/02 Javascript
Vue.js学习之计算属性
2017/01/22 Javascript
pace.js和NProgress.js两个加载进度插件的一点小总结
2018/01/31 Javascript
vue实现form表单与table表格的数据关联功能示例
2019/01/29 Javascript
Angular+ionic实现折叠展开效果的示例代码
2020/07/29 Javascript
python模拟登录百度贴吧(百度贴吧登录)实例
2013/12/18 Python
Python中Class类用法实例分析
2015/11/12 Python
利用numpy+matplotlib绘图的基本操作教程
2017/05/03 Python
python向已存在的excel中新增表,不覆盖原数据的实例
2018/05/02 Python
face++与python实现人脸识别签到(考勤)功能
2019/08/28 Python
python使用socket 先读取长度,在读取报文内容示例
2019/09/26 Python
win10子系统python开发环境准备及kenlm和nltk的使用教程
2019/10/14 Python
wxPython实现带颜色的进度条
2019/11/19 Python
keras 自定义loss model.add_loss的使用详解
2020/06/22 Python
Python过滤序列元素的方法
2020/07/31 Python
css3的transition属性详解
2014/12/15 HTML / CSS
美国顶级防滑鞋:Shoes For Crews
2017/03/27 全球购物
Viking比利时:购买办公用品
2019/10/30 全球购物
全球最大运动品牌的男装、女装和童装官方库存商:A&A Sports
2021/01/17 全球购物
交通安全演讲稿
2014/01/07 职场文书
珍惜水资源建议书
2014/03/12 职场文书
市级三好学生评语
2014/12/29 职场文书
学生会招新宣传语
2015/07/13 职场文书
董事长秘书工作总结
2015/08/14 职场文书
springboot @ConfigurationProperties和@PropertySource的区别
2021/06/11 Java/Android
MySQL8.0升级的踩坑历险记
2021/11/01 MySQL