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.all与WEB标准
May 13 Javascript
详解强大的jQuery选择器之基本选择器、层次选择器
Feb 07 Javascript
jQuery ajax(复习)—Baidu ajax request分离版
Jan 24 Javascript
jQuery事件绑定.on()简要概述及应用
Feb 07 Javascript
jQuery模拟超链接点击效果代码
Apr 21 Javascript
node.js中使用node-schedule实现定时任务实例
Jun 03 Javascript
jquery插件orbit.js实现图片折叠轮换特效
Apr 14 Javascript
JavaScript实现向select下拉框中添加和删除元素的方法
Mar 07 Javascript
JavaScript使用Ajax上传文件的示例代码
Aug 10 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
Apr 24 Javascript
Angular2中监听数据更新的方法
Aug 31 Javascript
微信小程序利用button控制条件标签的变量问题
Mar 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
2020年4月新番动漫目录 官方宣布4月播出的作品一览
2020/03/08 日漫
解析php开发中的中文编码问题
2013/08/08 PHP
你可能不知道PHP get_meta_tags()函数
2014/05/12 PHP
浅析PHP7新功能及语法变化总结
2016/06/17 PHP
PHP 中使用ajax时一些常见错误总结整理
2017/02/27 PHP
PHP date()格式MySQL中插入datetime方法
2019/01/29 PHP
PHP实现微信小程序用户授权的工具类示例
2019/03/05 PHP
Javascript 陷阱 window全局对象
2008/11/26 Javascript
Javascript面向对象扩展库代码分享
2012/03/27 Javascript
js 如何实现对数据库的增删改查
2012/11/23 Javascript
输入自动提示搜索提示功能的javascript:sugggestion.js
2013/09/02 Javascript
jQuery中hover与mouseover和mouseout的区别分析
2015/12/24 Javascript
动态加载css方法实现和深入解析
2017/01/18 Javascript
JS请求servlet功能示例
2017/06/01 Javascript
如何让你的JS代码更好看易读
2017/12/01 Javascript
Node.js + express实现上传大文件的方法分析【图片、文本文件】
2019/03/14 Javascript
Python的Bottle框架中实现最基本的get和post的方法的教程
2015/04/30 Python
python中安装Scrapy模块依赖包汇总
2017/07/02 Python
Python使用POP3和SMTP协议收发邮件的示例代码
2019/04/16 Python
django中forms组件的使用与注意
2019/07/08 Python
python多继承(钻石继承)问题和解决方法简单示例
2019/10/21 Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
2019/11/08 Python
Python是什么 Python的用处
2020/05/26 Python
Django+Uwsgi+Nginx如何实现生产环境部署
2020/07/31 Python
解决pycharm修改代码后第一次运行不生效的问题
2021/02/06 Python
CSS3教程:新增加的结构伪类
2009/04/02 HTML / CSS
基于第一个PhoneGap(cordova)的应用详解
2013/05/03 HTML / CSS
用Python匹配HTML tag的时候,<.*>和<.*?>有什么区别
2012/11/04 面试题
党员的自我评价范文
2014/01/02 职场文书
大学生文员专业个人求职信范文
2014/01/05 职场文书
文科生自我鉴定
2014/02/15 职场文书
秸秆管理实施方案
2014/03/15 职场文书
放飞梦想演讲稿800字
2014/08/26 职场文书
民主生活会对照检查材料
2014/09/22 职场文书
Html5获取用户当前位置的几种方式
2022/01/18 HTML / CSS
JS实现刷新网页后之前浏览位置保持不变示例详解
2022/08/14 Javascript