jquery-tips悬浮提示插件分享


Posted in Javascript onJuly 31, 2015

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

/**
* jquery tips 提示插件 jquery.tips.js v0.1beta
*
* 使用方法
* $(selector).tips({  //selector 为jquery选择器
* msg:'your messages!',  //你的提示消息 必填
* side:1, //提示窗显示位置 1,2,3,4 分别代表 上右下左 默认为1(上) 可选
* color:'#FFF', //提示文字色 默认为白色 可选
* bg:'#F00',//提示窗背景色 默认为红色 可选
* time:2,//自动关闭时间 默认2秒 设置0则不自动关闭 可选
* x:0,//横向偏移 正数向右偏移 负数向左偏移 默认为0 可选
* y:0,//纵向偏移 正数向下偏移 负数向上偏移 默认为0 可选
* })
*
*
*/
(function ($) {
  $.fn.tips = function(options){
    var defaults = {
      side:1,
      msg:'',
      color:'#FFF',
      bg:'#F00',
      time:2,
      x:0,
      y:0
    }
    var options = $.extend(defaults, options);
    if (!options.msg||isNaN(options.side)) {
    throw new Error('params error');
  }
  if(!$('#jquery_tips_style').length){
    var style='<style id="jquery_tips_style" type="text/css">';
    style+='.jq_tips_box{padding:10px;position:absolute;overflow:hidden;display:inline;display:none;z-index:10176523;}';
    style+='.jq_tips_arrow{display:block;width:0px;height:0px;position:absolute;}';
    style+='.jq_tips_top{border-left:10px solid transparent;left:20px;bottom:0px;}';
    style+='.jq_tips_left{border-top:10px solid transparent;right:0px;top:18px;}';
    style+='.jq_tips_bottom{border-left:10px solid transparent;left:20px;top:0px;}';
    style+='.jq_tips_right{border-top:10px solid transparent;left:0px;top:18px;}';
    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;}';
    style+='</style>';
    $(document.body).append(style);
  }
    this.each(function(){
      var element=$(this);
      var element_top=element.offset().top,element_left=element.offset().left,element_height=element.outerHeight(),element_width=element.outerWidth();
      options.side=options.side<1?1:options.side>4?4:Math.round(options.side);
      var sideName=options.side==1?'top':options.side==2?'right':options.side==3?'bottom':options.side==4?'left':'top';
      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);
      tips.find('.jq_tips_arrow').css('border-'+sideName,'10px solid '+options.bg);
      tips.find('.jq_tips_info').css({
        color:options.color,
        backgroundColor:options.bg
      });
      switch(options.side){
        case 1:
          tips.css({
            top:element_top-tips.outerHeight()+options.x,
            left:element_left-10+options.y
          });
          break;
        case 2:
          tips.css({
            top:element_top-20+options.x,
            left:element_left+element_width+options.y
          });
          break;
        case 3:
          tips.css({
            top:element_top+element_height+options.x,
            left:element_left-10+options.y
          });
          break;
        case 4:
          tips.css({
            top:element_top-20+options.x,
            left:element_left-tips.outerWidth()+options.y
          });
          break;
        default:
      }
      var closeTime;
      tips.fadeIn('fast').click(function(){
        clearTimeout(closeTime);
        tips.fadeOut('fast',function(){
          tips.remove();
        })
      })
      if(options.time){
        closeTime=setTimeout(function(){
          tips.click();
        },options.time*1000);
        tips.hover(function(){
          clearTimeout(closeTime);
        },function(){
          closeTime=setTimeout(function(){
            tips.click();
          },options.time*1000);
        })
      }
    });
    return this;
  };
})(jQuery);

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

Javascript 相关文章推荐
让div层随鼠标移动的实现代码 ie ff
Dec 18 Javascript
js getBoundingClientRect() 来获取页面元素的位置
Nov 25 Javascript
菜鸟javascript基础资料整理2
Dec 06 Javascript
jquery实现html页面 div 假分页有原理有代码
Sep 06 Javascript
JavaScript中number转换成string介绍
Dec 31 Javascript
php+ajax+jquery实现点击加载更多内容
May 03 Javascript
JS Array.slice 截取数组的实现方法
Jan 02 Javascript
js创建对象几种方式的优缺点对比
Sep 28 Javascript
js实现页面刷新滚动条位置不变
Nov 27 Javascript
JS实现重新加载当前页面或者父页面的几种方法
Nov 30 Javascript
AngularJS双向绑定和依赖反转实例详解
Apr 15 Javascript
微信小程序连续签到7天积分获得功能的示例代码
Aug 20 Javascript
javascript实现检验的各种规则
Jul 31 #Javascript
纯JS实现本地图片预览的方法
Jul 31 #Javascript
javascript动画算法实例分析
Jul 31 #Javascript
jquery实现手机号码选号的方法
Jul 31 #Javascript
javascript文本模板用法实例
Jul 31 #Javascript
Javascript实现网络监测的方法
Jul 31 #Javascript
jquery模拟alert的弹窗插件
Jul 31 #Javascript
You might like
phpmailer发送gmail邮件实例详解
2013/06/24 PHP
解决php extension 加载顺序问题
2019/08/16 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
Jquery iframe内部出滚动条
2010/02/11 Javascript
ie支持function.bind()方法实现代码
2012/12/27 Javascript
鼠标移动到图片名上,显示图片的简单实例
2013/07/14 Javascript
多种方法判断Javascript对象是否存在
2013/09/22 Javascript
JavaScript中伪协议 javascript:使用探讨
2014/07/18 Javascript
JavaScript eval() 函数介绍及应用示例
2014/07/29 Javascript
js钢琴按钮波浪式图片排列效果代码分享
2015/08/26 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件体系结构
2015/11/19 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
2016/03/29 Javascript
Vue实现PopupWindow组件详解
2018/04/28 Javascript
Vue中Table组件Select的勾选和取消勾选事件详解
2019/03/19 Javascript
浅谈vue的第一个commit分析
2020/06/08 Javascript
Vue elementui字体图标显示问题解决方案
2020/08/18 Javascript
如何将Node.js中的回调转换为Promise
2020/11/10 Javascript
python下如何查询CS反恐精英的服务器信息
2017/01/17 Python
Python优先队列实现方法示例
2017/09/21 Python
Python实现基本数据结构中栈的操作示例
2017/12/04 Python
python 获取list特定元素下标的实例讲解
2018/04/09 Python
Python实现的对一个数进行因式分解操作示例
2019/06/27 Python
Python爬虫:将headers请求头字符串转为字典的方法
2019/08/21 Python
python logging 日志的级别调整方式
2020/02/21 Python
浅谈如何使用python抓取网页中的动态数据实现
2020/08/17 Python
伦敦一家领先的精品零售商:IRIS Fashion
2019/05/24 全球购物
关于礼仪的演讲稿
2014/01/04 职场文书
个人求职信范文分享
2014/01/06 职场文书
销售求职信范文
2014/05/26 职场文书
标准毕业生自荐信
2014/06/24 职场文书
学雷锋志愿者活动方案
2014/08/21 职场文书
计划生育证明格式及范本
2014/10/09 职场文书
员工年终考核评语
2014/12/31 职场文书
vue+iview实现手机号分段输入框
2022/03/25 Vue.js
Python实战之大鱼吃小鱼游戏的实现
2022/04/01 Python
Win11控制面板快捷键是什么?Win11打开控制面板的方法汇总
2022/07/07 数码科技