自定义一个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 相关文章推荐
Extjs学习笔记之五 一个小细节renderTo和applyTo的区别
Jan 07 Javascript
jquery+ajax+C#实现无刷新操作数据库数据的简单实例
Feb 08 Javascript
js charAt的使用示例
Feb 18 Javascript
Javascript模块化编程详解
Dec 01 Javascript
js实现简单的可切换选项卡效果
Apr 10 Javascript
JS与jQ读取xml文件的方法
Dec 08 Javascript
解决WordPress使用CDN后博文无法评论的错误
Dec 15 Javascript
jQuery实现简单的DIV拖动效果
Feb 19 Javascript
Node.js数据库操作之连接MySQL数据库(一)
Mar 04 Javascript
vue.js数据绑定的方法(单向、双向和一次性绑定)
Jul 13 Javascript
JavaScript使用localStorage存储数据
Sep 25 Javascript
TypeScript中条件类型精读与实践记录
Oct 05 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多维数组的深度的方法
2014/01/07 PHP
php递归法读取目录及文件的方法
2015/01/30 PHP
php使用wordwrap格式化文本段落的方法
2015/03/17 PHP
用Javascript实现UTF8编码转换成gb2312编码
2006/12/22 Javascript
IE6与IE7中,innerHTML获取param的区别
2009/03/15 Javascript
javascript数字数组去重复项的实现代码
2010/12/30 Javascript
JavaScript图片放大技术(放大镜)实现代码分享
2013/11/14 Javascript
两种方法实现在HTML页面加载完毕后运行某个js
2014/06/16 Javascript
NodeJS学习笔记之(Url,QueryString,Path)模块
2015/01/13 NodeJs
jquery按回车键实现表单提交的简单实例
2016/05/25 Javascript
jQuery模仿单选按钮选中效果
2016/06/24 Javascript
angularJs关于指令的一些冷门属性详解
2016/10/24 Javascript
从零学习node.js之express入门(六)
2017/02/25 Javascript
jQuery实现的简单在线计算器功能
2017/05/11 jQuery
JS图片预加载插件详解
2017/06/21 Javascript
深入理解基于vue-cli的vuex配置
2017/07/24 Javascript
HTML5开发Kinect体感游戏的实例应用
2017/09/18 Javascript
Vue实现购物车详情页面的方法
2019/08/20 Javascript
Vue data的数据响应式到底是如何实现的
2020/02/11 Javascript
JavaScript实现拖拽效果
2020/03/16 Javascript
Python实现读取目录所有文件的文件名并保存到txt文件代码
2014/11/22 Python
wxpython中Textctrl回车事件无效的解决方法
2016/07/21 Python
Python3 实现随机生成一组不重复数并按行写入文件
2018/04/09 Python
python实现三次样条插值
2018/12/17 Python
python实现栅栏加解密 支持密钥加密
2019/03/20 Python
PyTorch搭建多项式回归模型(三)
2019/05/22 Python
Numpy的简单用法小结
2019/08/28 Python
Python 字符串、列表、元组的截取与切片操作示例
2019/09/17 Python
学生自我评语大全
2014/04/18 职场文书
关于保护环境的建议书
2014/05/13 职场文书
运动会班级口号
2014/06/09 职场文书
师范生求职自荐信
2014/06/14 职场文书
先进班集体申报材料
2014/12/26 职场文书
JavaScript中MutationObServer监听DOM元素详情
2021/11/27 Javascript
用Python实现屏幕截图详解
2022/01/22 Python
Java字符串逆序方法详情
2022/03/21 Java/Android