自定义一个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 相关文章推荐
两个Javascript小tip资料
Nov 23 Javascript
JavaScript中eval函数的问题
Jan 31 Javascript
js获取form表单所有数据的简单方法
Aug 18 Javascript
Node.js利用js-xlsx处理Excel文件的方法详解
Jul 05 Javascript
js 获取json数组里面数组的长度实例
Oct 31 Javascript
javascript中的隐式调用
Feb 10 Javascript
[原创]js实现保存文本框内容为本地文件兼容IE,chrome,火狐浏览器
Feb 14 Javascript
Vue实现左右菜单联动实现代码
Aug 12 Javascript
详解Vue CLI3配置解析之css.extract
Sep 14 Javascript
windows实现npm和cnpm安装步骤
Oct 24 Javascript
JavaScript实现五子棋小游戏
Oct 26 Javascript
Vue——前端生成二维码的示例
Dec 19 Vue.js
读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中计算时间差的几种方法
2009/12/31 PHP
PHP操作XML作为数据库的类
2010/12/19 PHP
PHP日期函数date格式化UNIX时间的方法
2015/03/19 PHP
php实现多维数组排序的方法示例
2017/03/23 PHP
PHP __call()方法实现委托示例
2019/05/20 PHP
js播放wav文件(源码)
2013/04/22 Javascript
JQuery制作的放大效果的popup对话框(未添加任何jquery plugin)分享
2013/04/28 Javascript
js实现超酷的照片墙展示效果图附源码下载
2015/10/08 Javascript
jQuery事件绑定用法详解(附bind和live的区别)
2016/01/19 Javascript
canvas实现环形进度条效果
2017/03/23 Javascript
微信小程序滚动Tab实现左右可滑动切换
2017/08/17 Javascript
webpack项目调试以及独立打包配置文件的方法
2018/02/28 Javascript
如何封装了一个vue移动端下拉加载下一页数据的组件
2019/01/06 Javascript
js如何获取图片url的Blob值并预览示例代码
2019/03/07 Javascript
JavaScript实现页面中录音功能的方法
2019/06/04 Javascript
layui递归实现动态左侧菜单
2019/07/26 Javascript
vue实现倒计时获取验证码效果
2020/04/17 Javascript
解决vue cli使用typescript后打包巨慢的问题
2019/09/30 Javascript
微信小程序图片自适应实现解析
2020/01/21 Javascript
[01:05]主宰至宝剑心之遗
2017/03/16 DOTA
Python 统计字数的思路详解
2018/05/08 Python
python3实现高效的端口扫描
2019/08/31 Python
Django REST Framework之频率限制的使用
2019/09/29 Python
python 利用turtle库绘制笑脸和哭脸的例子
2019/11/23 Python
在keras中实现查看其训练loss值
2020/06/16 Python
Notino法国:购买香水和化妆品
2019/04/15 全球购物
在DELPHI中调用存储过程和使用内嵌SQL哪种方式更好
2016/11/22 面试题
医院后勤自我鉴定
2013/10/13 职场文书
协议书范本
2014/04/23 职场文书
求职自我评价范文
2015/03/09 职场文书
2015员工年度考核评语
2015/03/25 职场文书
论文致谢词范文
2015/05/14 职场文书
2019大学竞选班长发言稿
2019/06/27 职场文书
网络安全倡议书(3篇)
2019/09/18 职场文书
Vue接口封装的完整步骤记录
2021/05/14 Vue.js
CSS实现鼠标悬浮动画特效
2023/05/07 HTML / CSS