打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
继续分享一个我自己写的 ToolTip提示插件

继续分享一个我自己写的 ToolTip提示插件,希望大家支持我,给我点评论,哪怕骂我的也好啊,让我知道有人在关注我“小豆” 嘿嘿。废话不多说上代码!

  1 $.fn.ToolTip = function (option) {  2     var defaults = {  3         direction: "down",  4         star: function () { },  5         from: $(this),  6         url: '../images/arrow.png'  7     };  8   9     //方法内基础变量 10     var opt = $.extend(defaults, option), 11         dirarray = ['up', 'down', 'left', 'right'], 12          left = 0, top = 0, _left = 0, _top = 0, arrow_w = 15, arrow_h = 60, timeout, arrow = '0 0'; 13  14     //开始遍历 15     $(this).each(function () { 16         var obj = $(this); 17         obj.on({ 18             mouseenter: function () { 19                 GetPos(obj); 20                 var objtip = $("<div class='tooltip'></div>").css({ 21                     position: "absolute", 22                     top: top, 23                     left: left, 24                     border: "solid 1px #ccc", 25                     width: $("#" + obj.attr("data-tooltip")).outerWidth(true), 26                     height: $("#" + obj.attr("data-tooltip")).outerHeight(true), 27                     'border-radius': '8px 8px', 28                     'background-color': '#fff', 29                     'z-index': 999 30                 }).appendTo(obj); 31                 var objtiphead = $("<div></div>").css({ 32                     width: arrow_w == 30 ? objtip.outerWidth(true) : 15, 33                     height: arrow_h == 30 ? objtip.outerHeight(true) : 15, 34                     position: "absolute", 35                     top: _top, 36                     left: _left 37                 }).appendTo(objtip); 38  39                 var objtiparrow = $("<div></div>").css({ 40  41                     width: arrow_w, 42                     height: arrow_h, 43                     "background-image": "url(" + opt.url + ")", 44                     "background-repeat": "no-repeat", 45                     "background-position": arrow 46                 }).appendTo(objtiphead); 47                 objtip.append($("#" + obj.attr("data-tooltip")).clone().show()); 48  49                 objtip.on({ 50                     mouseenter: function () { 51  52                         obj.data({ 53                             attip: true 54                         }); 55                     }, mouseleave: function () { 56  57                         $(".tooltip").remove(); 58                         obj.removeData("attip"); 59                     } 60                 }); 61             } 62         , mouseleave: function () { 63             if (!obj.data("attip")) 64                 $(".tooltip").remove(); 65             obj.removeData("attip"); 66         } 67  68         }); 69     }); 70     //得出位置 71     var GetPos = function (obj) { 72         var objtip = $("#" + obj.attr("data-tooltip")); 73         var tooltippos = { 74             up: function () { 75                 arrow_w = 30; arrow_h = 15; 76                 top = obj.position().top - 12 - objtip.outerHeight(true); 77                 left = obj.position().left; 78                 _top = objtip.outerHeight(true); 79                 _left = 15; 80                 arrow = '-50px -50px'; 81             }, 82             down: function () { 83                 arrow_w = 30; arrow_h = 15; 84                 top = obj.position().top + 12 + obj.height(); 85                 left = obj.position().left; 86                 _top = -15; 87                 _left = 15; 88                 arrow = '-50px 0'; 89             }, 90             right: function () { 91                 arrow_w = 15; 92                 arrow_h = 30; 93                 top = obj.position().top; 94                 left = obj.position().left - 12 - objtip.outerWidth(true); 95                 _top = 15; 96                 _left = objtip.outerWidth(true); 97                 arrow = '-80px -20px'; 98             }, 99             left: function () {100                 arrow_w = 15;101                 arrow_h = 30;102                 top = obj.position().top;103                 left = obj.position().left + obj.width() + 12;104                 _top = 15;105                 _left = -15;106                 arrow = '0 -20px';107             }108         };109         opt.star();110 111         opt.direction = $.inArray(opt.direction, dirarray) != -1 ? opt.direction : "down";112 113         switch (opt.direction) {114             case "up":115                 if (obj[0].getBoundingClientRect().top - 10 - objtip.outerHeight() > 0)116                     tooltippos.up();117                 else118                     tooltippos.down();119                 break;120             case "down":121                 if (obj[0].getBoundingClientRect().top + 10 + obj.height() + objtip.outerHeight() < $(window).height())122                     tooltippos.down();123                 else124                     tooltippos.up();125                 break;126             case "right":127                 if (obj[0].getBoundingClientRect().left - 10 - objtip.outerWidth() > 0)128                     tooltippos.right();129                 else130                     tooltippos.left();131                 break;132             case "left":133                 if (obj[0].getBoundingClientRect().left + obj.width() + 10 + objtip.outerWidth() < $(window).width())134                     tooltippos.left();135                 else136                     tooltippos.right();137         }138 139     }140 }

经测试,好像IE7 箭头有指向错误,大家可以修改下。小问题啦,洒洒水啦~

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
纯CCS绘制成的三角形箭头图案技术详解 | WebTian
Tooltip鼠标hover放上时文字提示
纯CSS实现箭头、气泡让提示功能具有三角形图标
27 个 jQuery 的工具提示 Tooltip 插件
css如何创造出三角形
做图书馆首页横向排列链接的代码
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服