自定义一个jquery插件[鼠标悬浮时候 出现说明label]


Posted in Javascript onJune 27, 2011

最近在学习jquery,看了几天,决定做个小东西练练手。入门级的可以看看。

先看下面这个小东西有什么功能,有模有用。

功能:当你鼠标悬浮在你的html元素上面的时候,它会显示一个help说明性的label。

效果图:

原始:

自定义一个jquery插件[鼠标悬浮时候 出现说明label]

当你的鼠标悬浮在'单击我吧1'时:

自定义一个jquery插件[鼠标悬浮时候 出现说明label]

当你的鼠标悬浮在'textbox'时:

自定义一个jquery插件[鼠标悬浮时候 出现说明label]

看了效果图,若是有兴趣的话,仔细看看代码吧,代码有注释

html 代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="testLinkJquery.aspx.cs" Inherits="testLinkJquery" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
<title></title> 
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script> 
<script src="Scripts/a1.js" type="text/javascript"></script> 
<script type="text/javascript"> 
$(document).ready(function () { 
$("#d").HelpTextFn({ helpText: 'this link id is d', bgcolor: 'black', ftcolor: 'red', width: '100px', tempLeft: '15', tempTop: '15' }); 
$("#f").HelpTextFn({ helpText: 'this textbox id is f', bgcolor: 'black', ftcolor: 'yellow', width: '100px', tempLeft: '15', tempTop: '15' }); 
}) 
</script> 
<style type="text/css"> 
a:hover 
{ 
color:Red; 
text-decoration:underline; 
} 
</style> 
</head> 
<body> 
<a href="http://www.baidu.com" id="d">s单击我吧1</a><br /> 
<input type="text" id="f" value="这是一个textbox" /><br /> 
</body> 
</html>

html 代码说明:

带下划线的是调用jquery插件的传入的参数。

带有红色的是你自己要注意相匹配的地方

参数说明:

shelpText: "default help text", //你要显示label的文档
bgcolor: "red", //label的背景色
ftcolor: "yellow", //label的前景色
width: "200px", //label的宽度
tempLeft: "15", //label相对于鼠标所在位子的left值
tempTop: "15" //label相对于鼠标所在位子的top值
jquery代码[a1.query]

/* 
* HelpTextFn 
* Copyright (c) 2011 yongbin zhang http://www.cnblogs.com/2814/ 
* Date: 2011-6-27 
* 当你鼠标悬浮在你的html元素上面的时候,它会显示一个help说明性的label 
*/ 
//以下代码不可以改变 
//注释为代码说明 
/* 
想要自己定义一个jquery插件,一般的框架就是: 
(function ($) { 
$.fn.HelpTextFn = function (options) { //要改变的就是HelpTextFn,这是你的jquery函数的名称[在你的html中要调用这个函数的时候就得用到这个名称], 
//其他的就不需要进行改变了。 
var defaults = { //var defaults{ 这里面是你的这个函数的参数的默认值 } 
helpText: "default help text", //你要显示label的文档 
bgcolor: "red", //label的背景色 
ftcolor: "yellow", //label的前景色 
width: "200px", //label的宽度 
tempLeft: "15", //label相对于鼠标所在位子的left值 
tempTop: "15" //label相对于鼠标所在位子的top值 
} 
var options = $.extend(defaults, options); //这句话是死的,它的意思就是说,若你在html中调用这个插件的时候,若是没有传入参数的值得话, 
//那么我就用defalut里面定义好的参数,否则就用你传入的参数的值,[注意]:下面若是要用到参数的话, 
//就得使用[options.参数名]如:options.helpText 
$(this).mousemove(function (e) { //添加this的mousemove事件,就是说,哪个html元素调用了我的这个插件,那么我就给他添加mousemove事件 
}); 
$(this).mouseleave(function () { //添加this的mouseleave事件,就是说,哪个html元素调用了我的这个插件,那么我就给他添加mouseleave事件 
}); 
}; 
})(jQuery); //这句是固定的 
*/ 
(function ($) { 
$.fn.HelpTextFn = function (options) {// 
var defaults = { 
helpText: "default help text", 
bgcolor: "red", 
ftcolor: "yellow", 
width: "200px", 
tempLeft: "15", 
tempTop: "15" 
} 
var options = $.extend(defaults, options); 
var linkDivId = $(this).attr("id"); 
$(this).mousemove(function (e) { 
if ($("#linkDiv" + linkDivId)) { 
$("#linkDiv" + linkDivId).remove(); 
} 
var xx = e.originalEvent.x || e.originalEvent.layerX || 0; 
var yy = e.originalEvent.y || e.originalEvent.layerY || 0; 
var left = xx + parseInt(options.tempLeft); 
var top = yy + parseInt(options.tempTop); 
$("#" + linkDivId).after("<div id='linkDiv" + linkDivId + "' style='background-color:" + options.bgcolor + ";color:" + options.ftcolor + ";width:" + options.width + ";display:none;top:" + top + "px;left:" + left + "px;position:absolute;float:left'>" + options.helpText + "</div>"); 
$("#linkDiv" + linkDivId).show(); 
}); 
$(this).mouseleave(function () { 
$("#linkDiv" + linkDivId).remove(); 
}); 
}; 
})(jQuery);
Javascript 相关文章推荐
总结AJAX相关JS代码片段和浏览器模型
Aug 15 Javascript
event.srcElement 用法笔记e.target
Dec 18 Javascript
javascript删除数组重复元素的方法汇总
Jun 24 Javascript
基于bootstrap实现广告轮播带图片和文字效果
Jul 22 Javascript
Web安全测试之XSS实例讲解
Aug 15 Javascript
浅谈jquery高级方法描述与应用
Oct 04 Javascript
利用angular.copy取消变量的双向绑定与解析
Nov 25 Javascript
jQuery开源组件BootstrapValidator使用详解
Jun 29 jQuery
详解Immutable及 React 中实践
Mar 01 Javascript
vue中子组件的methods中获取到props中的值方法
Aug 27 Javascript
layui的select联动实现代码
Sep 28 Javascript
原生javascript实现类似vue的数据绑定功能示例【观察者模式】
Feb 24 Javascript
读jQuery之十 事件模块概述
Jun 27 #Javascript
AeroWindow 基于JQuery的弹出窗口插件
Jun 27 #Javascript
jQuery表格行换色的三种实现方法
Jun 27 #Javascript
19个很有用的 JavaScript库推荐
Jun 27 #Javascript
Node.js:Windows7下搭建的Node.js服务(来玩玩服务器端的javascript吧,这可不是前端js插件)
Jun 27 #Javascript
Jsonp 跨域的原理以及Jquery的解决方案
Jun 27 #Javascript
基于jQuery实现的当离开页面时出现提示的实现代码
Jun 27 #Javascript
You might like
PHP Array交叉表实现代码
2010/08/05 PHP
php绘图之在图片上写中文和英文的方法
2015/01/24 PHP
mysql alter table命令修改表结构实例详解
2016/09/24 PHP
php压缩文件夹最新版
2018/07/18 PHP
PHP一个简单的无需刷新爬虫
2019/01/05 PHP
PHP7 list() 函数修改
2021/03/09 PHP
将HTML自动转为JS代码
2006/06/26 Javascript
setInterval与clearInterval的使用示例代码
2014/01/28 Javascript
使用canvas实现仿新浪微博头像截取上传功能
2015/09/02 Javascript
ECharts仪表盘实例代码(附源码下载)
2016/02/18 Javascript
Node.js中JavaScript操作MySQL的常用方法整理
2016/03/01 Javascript
NodeJS整合银联网关支付(DEMO)
2016/11/09 NodeJs
vue使用drag与drop实现拖拽的示例代码
2017/09/07 Javascript
基于Node.js模板引擎教程-jade速学与实战1
2017/09/17 Javascript
JS简单实现数组去重的方法分析
2017/10/14 Javascript
vue动态改变背景图片demo分享
2018/09/13 Javascript
《javascript设计模式》学习笔记四:Javascript面向对象程序设计链式调用实例分析
2020/04/07 Javascript
webpack安装配置与常见使用过程详解(结合vue)
2020/06/01 Javascript
js实现随机圆与矩形功能
2020/10/29 Javascript
[01:24:51]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第二场
2014/05/26 DOTA
[01:09]DOTA2次级职业联赛 - ishow.HMM战队宣传片
2014/12/01 DOTA
python爬虫入门教程之点点美女图片爬虫代码分享
2014/09/02 Python
Python bsddb模块操作Berkeley DB数据库介绍
2015/04/08 Python
Python2.x利用commands模块执行Linux shell命令
2016/03/11 Python
python使用pymysql实现操作mysql
2016/09/13 Python
python中将\\uxxxx转换为Unicode字符串的方法
2018/09/06 Python
Django实现随机图形验证码的示例
2020/10/15 Python
H5离线存储Manifest原理及使用
2020/04/28 HTML / CSS
KENZO官网:高田贤三在法国创立的品牌
2019/05/16 全球购物
应届毕业生的个人自我鉴定
2013/10/24 职场文书
高中生自我鉴定范文
2013/10/30 职场文书
个人党性分析材料
2014/12/19 职场文书
2016廉洁从业学习心得体会
2016/01/19 职场文书
交通事故协议书范本
2016/03/19 职场文书
详解Python为什么不用设计模式
2021/06/24 Python
Java Redisson多策略注解限流
2022/09/23 Java/Android