发文章
发文工具
撰写
网文摘手
文档
视频
思维导图
随笔
相册
原创同步助手
其他工具
图片转文字
文件清理
AI助手
留言交流
继续分享一个我自己写的 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 else 118 tooltippos.down(); 119 break; 120 case "down": 121 if (obj[0].getBoundingClientRect().top + 10 + obj.height() + objtip.outerHeight() < $(window).height()) 122 tooltippos.down(); 123 else 124 tooltippos.up(); 125 break; 126 case "right": 127 if (obj[0].getBoundingClientRect().left - 10 - objtip.outerWidth() > 0) 128 tooltippos.right(); 129 else 130 tooltippos.left(); 131 break; 132 case "left": 133 if (obj[0].getBoundingClientRect().left + obj.width() + 10 + objtip.outerWidth() < $(window).width()) 134 tooltippos.left(); 135 else 136 tooltippos.right(); 137 } 138 139 } 140 }
经测试,好像IE7 箭头有指向错误,大家可以修改下。小问题啦,洒洒水啦~
来自: 昵称10504424 > 《Jquery》
0条评论
发表
请遵守用户 评论公约
纯CCS绘制成的三角形箭头图案技术详解 | WebTian
/* left arrow slant */border-right: 5px solid transparent;/* right arrow slant */border-bottom: 5px solid #2f2f2f;border-bottom: 5px solid transparent;/* left arrow slant */border-top: 5p...
Tooltip鼠标hover放上时文字提示
纯CSS实现箭头、气泡让提示功能具有三角形图标
宽=左边框的长度 */ div.arrow-right { width: 0; height: 0; border-bottom: 15px solid transparent; /* 下边框的高 */ border-top: 15px solid transparent; /* 上方边框的高 */ border-left: 60px ...
27 个 jQuery 的工具提示 Tooltip 插件
27 个 jQuery 的工具提示 Tooltip 插件。
css如何创造出三角形
/* tweak size of the arrow *//*border-style:solid dashed dashed dashed;border-color:#a4cde1 transparent transparent transparent;*/border-style:dashed dashed dashed dashed;border-color:tra...
做图书馆首页横向排列链接的代码
<STYLE type=text/css>.test ul{list-style:none;width:100px;margin-left:3px;line-height:30px;} .test a:link{color:#666;background:url(arrow_off.gif) #CCC no-repeat 5px 12px;text-decor...
基于jQuery-ui实现多滑块slider
前端实战:Vue实现数据导出导入案例
前端实战:Vue实现数据导出导入案例项目开发当中,列表数据的导出功能基本是每个业务系统必备的功能、另外Excel数据批量导入数据库也是...
CSS3鼠标悬停文字弹出提示对话框
微信扫码,在手机上查看选中内容