首页 > 语言 > JavaScript > 正文

jquery tips悬浮提示插件分享

2024-05-06 16:24:11
字体:
来源:转载
供稿:网友

Tooltip(提示框)是一种常见的效果,它通常用在需要进一步解释、说明或提示的某个词上。这种小效果实现起来虽然不难,但如果你想不劳而获,可以试试 Tips。

由于是在mac下写的,没什么低版本浏览器测试工具没做具体的兼容测试,而且我也不是前端还请多多包涵,js库用的jquery1.11.1,低版本应该也是可以的,需要自己去下jquery,只是写的好玩,分享一下,希望大家能一起改进

 

 
  1. /** 
  2. * jquery tips 提示插件 jquery.tips.js v0.1beta 
  3. * 
  4. * 使用方法 
  5. * $(selector).tips({ //selector 为jquery选择器 
  6. * msg:'your messages!', //你的提示消息 必填 
  7. * side:1, //提示窗显示位置 1,2,3,4 分别代表 上右下左 默认为1(上) 可选 
  8. * color:'#FFF', //提示文字色 默认为白色 可选 
  9. * bg:'#F00',//提示窗背景色 默认为红色 可选 
  10. * time:2,//自动关闭时间 默认2秒 设置0则不自动关闭 可选 
  11. * x:0,//横向偏移 正数向右偏移 负数向左偏移 默认为0 可选 
  12. * y:0,//纵向偏移 正数向下偏移 负数向上偏移 默认为0 可选 
  13. * }) 
  14. * 
  15. * 
  16. */ 
  17. (function ($) { 
  18. $.fn.tips = function(options){ 
  19. var defaults = { 
  20. side:1, 
  21. msg:''
  22. color:'#FFF'
  23. bg:'#F00'
  24. time:2, 
  25. x:0, 
  26. y:0 
  27. var options = $.extend(defaults, options); 
  28. if (!options.msg||isNaN(options.side)) { 
  29. throw new Error('params error'); 
  30. if(!$('#jquery_tips_style').length){ 
  31. var style='<style id="jquery_tips_style" type="text/css">'
  32. style+='.jq_tips_box{padding:10px;position:absolute;overflow:hidden;display:inline;display:none;z-index:10176523;}'
  33. style+='.jq_tips_arrow{display:block;width:0px;height:0px;position:absolute;}'
  34. style+='.jq_tips_top{border-left:10px solid transparent;left:20px;bottom:0px;}'
  35. style+='.jq_tips_left{border-top:10px solid transparent;right:0px;top:18px;}'
  36. style+='.jq_tips_bottom{border-left:10px solid transparent;left:20px;top:0px;}'
  37. style+='.jq_tips_right{border-top:10px solid transparent;left:0px;top:18px;}'
  38. style+='.jq_tips_info{word-wrap: break-word;word-break:normal;border-radius:4px;padding:5px 8px;max-width:130px;overflow:hidden;box-shadow:1px 1px 1px #999;font-size:12px;cursor:pointer;}'
  39. style+='</style>'
  40. $(document.body).append(style); 
  41. this.each(function(){ 
  42. var element=$(this); 
  43. var element_top=element.offset().top,element_left=element.offset().left,element_height=element.outerHeight(),element_width=element.outerWidth(); 
  44. options.side=options.side<1?1:options.side>4?4:Math.round(options.side); 
  45. var sideName=options.side==1?'top':options.side==2?'right':options.side==3?'bottom':options.side==4?'left':'top'
  46. var tips=$('<div class="jq_tips_box"><i class="jq_tips_arrow jq_tips_'+sideName+'"></i><div class="jq_tips_info">'+options.msg+'</div></div>').appendTo(document.body); 
  47. tips.find('.jq_tips_arrow').css('border-'+sideName,'10px solid '+options.bg); 
  48. tips.find('.jq_tips_info').css({ 
  49. color:options.color, 
  50. backgroundColor:options.bg 
  51. }); 
  52. switch(options.side){ 
  53. case 1: 
  54. tips.css({ 
  55. top:element_top-tips.outerHeight()+options.x, 
  56. left:element_left-10+options.y 
  57. }); 
  58. break
  59. case 2: 
  60. tips.css({ 
  61. top:element_top-20+options.x, 
  62. left:element_left+element_width+options.y 
  63. }); 
  64. break
  65. case 3: 
  66. tips.css({ 
  67. top:element_top+element_height+options.x, 
  68. left:element_left-10+options.y 
  69. }); 
  70. break
  71. case 4: 
  72. tips.css({ 
  73. top:element_top-20+options.x, 
  74. left:element_left-tips.outerWidth()+options.y 
  75. }); 
  76. break
  77. default
  78. var closeTime; 
  79. tips.fadeIn('fast').click(function(){ 
  80. clearTimeout(closeTime); 
  81. tips.fadeOut('fast',function(){ 
  82. tips.remove(); 
  83. }) 
  84. }) 
  85. if(options.time){ 
  86. closeTime=setTimeout(function(){ 
  87. tips.click(); 
  88. },options.time*1000); 
  89. tips.hover(function(){ 
  90. clearTimeout(closeTime); 
  91. },function(){ 
  92. closeTime=setTimeout(function(){ 
  93. tips.click(); 
  94. },options.time*1000); 
  95. }) 
  96. }); 
  97. return this
  98. }; 
  99. })(jQuery); 

以上所述就是本文的全部内容了,希望大家能够喜欢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选