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 相关文章推荐
jsTree树控件(基于jQuery, 超强悍)[推荐]
Sep 01 Javascript
JS中获取数据库中的值的方法
Jul 14 Javascript
jquery实现的鼠标拖动排序Li或Table
May 04 Javascript
jQuery实现网页抖动的菜单抖动效果
Aug 07 Javascript
基于jquery实现全屏滚动效果
Nov 26 Javascript
js实现增加数字显示的环形进度条效果
Feb 05 Javascript
js canvas实现擦除效果示例代码
Apr 26 Javascript
Angular 1.x个人使用的经验小结
Jul 19 Javascript
详解刷新页面vuex数据不消失和不跳转页面的解决
Jan 30 Javascript
微信小程序实现渐入渐出动画效果
Jun 13 Javascript
vue-路由精讲 二级路由和三级路由的作用
Aug 06 Javascript
区分vue-router的hash和history模式
Oct 03 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
通过PHP实现获取访问用户IP
2020/05/09 PHP
用 javascript 实现的点击复制代码
2007/03/24 Javascript
为jquery.ui.dialog 增加“在当前鼠标位置打开”的功能
2009/11/24 Javascript
使用apply方法实现javascript中的对象继承
2013/12/16 Javascript
node.js实现多图片上传实例
2014/06/03 Javascript
jquery实现textarea 高度自适应
2015/03/11 Javascript
利用JavaScript的AngularJS库制作电子名片的方法
2015/06/18 Javascript
基于jquery实现放大镜效果
2015/08/17 Javascript
全面了解javascript中的错误处理机制
2016/07/18 Javascript
如何在JS中实现相互转换XML和JSON
2016/07/19 Javascript
js中DOM三级列表(代码分享)
2017/03/20 Javascript
javascript 面向对象实战思想分享
2017/09/07 Javascript
JavaScript中严格判断NaN的方法
2018/02/16 Javascript
微信小程序手机号码验证功能的实例代码
2018/08/28 Javascript
vue插件实现v-model功能
2018/09/10 Javascript
深入理解js A*寻路算法原理与具体实现过程
2018/12/13 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
浅析Angular 实现一个repeat指令的方法
2019/07/21 Javascript
JS常见面试试题总结【去重、遍历、闭包、继承等】
2019/08/27 Javascript
JavaScript实现Excel表格效果
2020/02/07 Javascript
python创建列表并给列表赋初始值的方法
2015/07/28 Python
Python语言的面相对象编程方式初步学习
2016/03/12 Python
Python设计模式之命令模式简单示例
2018/01/10 Python
浅谈Python3 numpy.ptp()最大值与最小值的差
2019/08/24 Python
用Python画小女孩放风筝的示例
2019/11/23 Python
Python基于unittest实现测试用例执行
2020/11/25 Python
美国最大的宠物药店:1-800-PetMeds
2016/10/02 全球购物
全球航班旅行搜索网站:Cheapflights
2017/05/19 全球购物
"引用"与指针的区别是什么
2016/09/07 面试题
新店开张活动方案
2014/08/24 职场文书
单位委托函范文
2015/01/29 职场文书
六一儿童节致辞
2015/07/31 职场文书
2016年习主席讲话学习心得体会
2016/01/20 职场文书
创业计划书之酒吧
2019/12/02 职场文书
Python使用sql语句对mysql数据库多条件模糊查询的思路详解
2021/04/12 Python
bose降噪耳机音能消除人声吗
2022/04/19 数码科技