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 相关文章推荐
指定js可访问其它域名的cookie的方法
Sep 18 Javascript
js textarea自动增高并隐藏滚动条
Dec 16 Javascript
基于jquery的图片懒加载js
Jun 30 Javascript
Jquery 数组操作大全个人总结
Nov 13 Javascript
基于jQuery的JavaScript模版引擎JsRender使用指南
Dec 29 Javascript
div实现自适应高度的textarea实现angular双向绑定
Jan 08 Javascript
jQuery实现表格元素动态创建功能
Jan 09 Javascript
微信小程序获取用户openId的实现方法
May 23 Javascript
使用Node.js实现RESTful API的示例
Aug 01 Javascript
jQuery实现手机号正则验证输入及自动填充空格功能
Jan 02 jQuery
Vue中使用webpack别名的方法实例详解
Jun 19 Javascript
实现Vue的markdown文档可以在线运行的方法示例
Dec 11 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的FTP学习(一)[转自奥索]
2006/10/09 PHP
PHP查询快递信息的方法
2015/03/07 PHP
php  PATH_SEPARATOR判断当前服务器系统类型实例
2016/10/28 PHP
php 删除指定文件夹的实例讲解
2017/07/25 PHP
PHP中rename()函数的妙用讲解
2019/02/28 PHP
PHP实现cookie跨域session共享的方法分析
2019/08/23 PHP
提高代码性能技巧谈—以创建千行表格为例
2006/07/01 Javascript
Jquery使用Firefox FireBug插件调试Ajax步骤讲解
2013/12/02 Javascript
JavaScript中数据结构与算法(一):栈
2015/06/19 Javascript
js实现div拖动动画运行轨迹效果代码分享
2015/08/27 Javascript
javascript之Boolean类型对象
2016/06/07 Javascript
require.js与bootstrap结合实现简单的页面登录和页面跳转功能
2017/05/12 Javascript
浅析vue深复制
2018/01/29 Javascript
微信小程序实现YDUI的ScrollNav组件
2018/02/02 Javascript
layerUI下的绑定事件实例代码
2018/08/17 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
layui 富文本赋值,取值,取纯文本值的实例
2019/09/18 Javascript
Bootstrap table 实现树形表格联动选中联动取消功能
2019/09/30 Javascript
vue下axios拦截器token刷新机制的实例代码
2020/01/17 Javascript
Vue初始化中的选项合并之initInternalComponent详解
2020/06/11 Javascript
element跨分页操作选择详解
2020/06/29 Javascript
python实现class对象转换成json/字典的方法
2016/03/11 Python
使用pandas读取文件的实现
2019/07/31 Python
纪伊国屋新加坡网上书店:Kinokuniya新加坡
2017/12/29 全球购物
波兰在线香水店:Perfumy.pl
2019/08/12 全球购物
卡骆驰英国官网:Crocs英国
2019/08/22 全球购物
能否解释一下XSS cookie盗窃是什么意思
2012/06/02 面试题
银行会计业务的个人自我评价
2013/11/02 职场文书
前台文员岗位职责及工作流程
2013/11/19 职场文书
高中教师考核方案
2014/05/18 职场文书
会计学毕业生求职信
2014/06/25 职场文书
中学生社会实践活动总结
2014/07/03 职场文书
承诺书模板
2014/08/30 职场文书
高三毕业感言
2015/07/30 职场文书
CSS实现九宫格布局(自适应)的示例代码
2022/02/12 HTML / CSS
Hive日期格式转换方法总结
2022/06/25 数据库