分享一个我自己写的ToolTip提示插件(附源码)
2013-01-20 00:00
537 查看
继续分享一个我自己写的 ToolTip提示插件,希望大家支持我,给我点评论,哪怕骂我的也好啊,让我知道有人在关注我“小豆” 嘿嘿。废话不多说上代码!
经测试,好像IE7 箭头有指向错误,大家可以修改下。小问题啦,洒洒水啦~
效果图:
当然,里面是什么内容,那就要自己创造了,我只是写了一个展示div,用法很简单的。
源码下载
操作说明是对用户体验师的侮辱!
$.fn.ToolTip = function (option) { var defaults = { direction: "down", star: function () { }, from: $(this), url: '../images/arrow.png' }; //方法内基础变量 var opt = $.extend(defaults, option), dirarray = ['up', 'down', 'left', 'right'], left = 0, top = 0, _left = 0, _top = 0, arrow_w = 15, arrow_h = 60, timeout, arrow = '0 0'; //开始遍历 $(this).each(function () { var obj = $(this); obj.on({ mouseenter: function () { GetPos(obj); var objtip = $("<div class='tooltip'></div>").css({ position: "absolute", top: top, left: left, border: "solid 1px #ccc", width: $("#" + obj.attr("data-tooltip")).outerWidth(true), height: $("#" + obj.attr("data-tooltip")).outerHeight(true), 'border-radius': '8px 8px', 'background-color': '#fff', 'z-index': 999 }).appendTo(obj); var objtiphead = $("<div></div>").css({ width: arrow_w == 30 ? objtip.outerWidth(true) : 15, height: arrow_h == 30 ? objtip.outerHeight(true) : 15, position: "absolute", top: _top, left: _left }).appendTo(objtip); var objtiparrow = $("<div></div>").css({ width: arrow_w, height: arrow_h, "background-image": "url(" + opt.url + ")", "background-repeat": "no-repeat", "background-position": arrow }).appendTo(objtiphead); objtip.append($("#" + obj.attr("data-tooltip")).clone().show()); objtip.on({ mouseenter: function () { obj.data({ attip: true }); }, mouseleave: function () { $(".tooltip").remove(); obj.removeData("attip"); } }); } , mouseleave: function () { if (!obj.data("attip")) $(".tooltip").remove(); obj.removeData("attip"); } }); }); //得出位置 var GetPos = function (obj) { var objtip = $("#" + obj.attr("data-tooltip")); var tooltippos = { up: function () { arrow_w = 30; arrow_h = 15; top = obj.position().top - 12 - objtip.outerHeight(true); left = obj.position().left; _top = objtip.outerHeight(true); _left = 15; arrow = '-50px -50px'; }, down: function () { arrow_w = 30; arrow_h = 15; top = obj.position().top + 12 + obj.height(); left = obj.position().left; _top = -15; _left = 15; arrow = '-50px 0'; }, right: function () { arrow_w = 15; arrow_h = 30; top = obj.position().top; left = obj.position().left - 12 - objtip.outerWidth(true); _top = 15; _left = objtip.outerWidth(true); arrow = '-80px -20px'; }, left: function () { arrow_w = 15; arrow_h = 30; top = obj.position().top; left = obj.position().left + obj.width() + 12; _top = 15; _left = -15; arrow = '0 -20px'; } }; opt.star(); opt.direction = $.inArray(opt.direction, dirarray) != -1 ? opt.direction : "down"; switch (opt.direction) { case "up": if (obj[0].getBoundingClientRect().top - 10 - objtip.outerHeight() > 0) tooltippos.up(); else tooltippos.down(); break; case "down": if (obj[0].getBoundingClientRect().top + 10 + obj.height() + objtip.outerHeight() < $(window).height()) tooltippos.down(); else tooltippos.up(); break; case "right": if (obj[0].getBoundingClientRect().left - 10 - objtip.outerWidth() > 0) tooltippos.right(); else tooltippos.left(); break; case "left": if (obj[0].getBoundingClientRect().left + obj.width() + 10 + objtip.outerWidth() < $(window).width()) tooltippos.left(); else tooltippos.right(); } } }
经测试,好像IE7 箭头有指向错误,大家可以修改下。小问题啦,洒洒水啦~
效果图:
当然,里面是什么内容,那就要自己创造了,我只是写了一个展示div,用法很简单的。
源码下载
操作说明是对用户体验师的侮辱!
相关文章推荐
- 在看官方的例子时候由一个grid实例,在每一行之前有个加号,展开可以显示内容,在实际应用中还是非常有用的,照搬例子的代码,发现老是提示对象不存在,查阅资料后发现是没有加载插件,这里和大家分享下Ext.grid.RowExpander插件的使用,
- 分享一个简单的 VS 插件及源码
- 分享一个我自己的代码仓库源码
- 分享一个我自己的代码仓库源码
- 分享一个仅0.7KB的jQuery文本框输入提示插件
- 分享一个jquery插件-主要用于显示微博人的图像和鼠标提示等poshytip
- 分享一个简单的 VS 插件及源码
- [js插件]分享一个文章内容信息提示插件Colortip
- 一个Jquery的提示(tooltip)插件Jtip
- 分享一个Flex管理系统 Session超时的时候 用户操作时自动提示并跳转到登陆页面的方法
- Bootstrap插件(四)——工具提示(tooltip.js)
- 分享一个不错的VS插件——CodeMap(转发)
- 分享一个chrome插件 sorry youku 屏蔽优酷视频广告的利器,
- 急急如律令!火速搭建一个即时通讯系统!(附源码分享——高度可移植!)
- 分享一个xcode小插件,KSImageNamed-Xcode
- 流行的jQuery信息提示插件(jQuery Tooltip Plugin)
- 分享一个单点登录、OAuth2.0授权系统源码(SimpleSSO)
- 分享一个前端等比压缩图片插件
- 分享一个文件上传插件