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 相关文章推荐
javascript 写类方式之三
Jul 05 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
Jun 27 Javascript
jQuery 图片切换插件(代码比较少)
May 07 Javascript
Javascript实现动态菜单添加的实例代码
Jul 05 Javascript
js实现简单的左右两边固定广告效果实例
Apr 10 Javascript
js/jq仿window文件夹框选操作插件
Mar 08 Javascript
bootstrap时间控件daterangepicker使用方法及各种小bug修复
Oct 25 Javascript
基于Vue实现拖拽功能
Jul 29 Javascript
Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
Jun 10 Javascript
一些可能会用到的Node.js面试题
Jun 15 Javascript
原生js实现弹窗消息动画
Nov 20 Javascript
vue-resource 拦截器interceptors使用详解
Jan 18 Vue.js
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
PHP获取时间排除周六、周日的两个方法
2014/06/30 PHP
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
2014/09/27 PHP
CodeIgniter基于Email类发邮件的方法
2016/03/29 PHP
$.get获取一个文件的内容示例代码
2013/09/11 Javascript
jquery新的绑定事件机制on方法的使用方法
2014/04/15 Javascript
JS实现的数组全排列输出算法
2015/03/19 Javascript
三种Node.js写文件的方式
2016/03/08 Javascript
关于js二维数组和多维数组的定义声明(详解)
2016/10/02 Javascript
JavaScript &amp; jQuery完美判断图片是否加载完毕
2017/01/08 Javascript
第一次记录Bootstrap table学习笔记(1)
2017/05/18 Javascript
angular中ui calendar的一些使用心得(推荐)
2017/11/03 Javascript
JS基于for语句编写的九九乘法表示例
2018/01/04 Javascript
jQuery实现的上传图片本地预览效果简单示例
2018/03/29 jQuery
node基于puppeteer模拟登录抓取页面的实现
2018/05/09 Javascript
Vue-cli3项目引入Typescript的实现方法
2019/10/18 Javascript
angular异步验证防抖踩坑实录
2019/12/01 Javascript
ES6常用小技巧总结【去重、交换、合并、反转、迭代、计算等】
2019/12/21 Javascript
原生js实现自定义消息提示框
2020/11/19 Javascript
python实现清屏的方法
2015/04/30 Python
Python中pip安装非PyPI官网第三方库的方法
2015/06/02 Python
Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
2018/11/23 Python
python实现抖音点赞功能
2019/04/07 Python
Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法
2019/07/04 Python
利用python-docx模块写批量生日邀请函
2019/08/26 Python
基于Python把网站域名解析成ip地址
2020/05/25 Python
CSS3的常见transformation图形变化用法小结
2016/05/13 HTML / CSS
仓库主管的岗位职责
2013/12/04 职场文书
文秘个人求职信范文
2014/04/22 职场文书
《她是我的朋友》教学反思
2014/04/26 职场文书
法定授权委托证明书
2014/09/27 职场文书
师德自我剖析材料范文
2014/10/06 职场文书
企业群众路线教育实践活动心得体会
2014/11/03 职场文书
2015婚礼主持词开场白
2015/05/28 职场文书
2015年法律事务部工作总结
2015/07/27 职场文书
2019个人半年工作总结
2019/06/21 职场文书
详解Laravel制作API接口
2021/05/31 PHP