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 相关文章推荐
jQuery 使用手册(三)
Sep 23 Javascript
Javascript模块化编程(一)AMD规范(规范使用模块)
Jan 17 Javascript
ajax处理php返回json数据的实例代码
Jan 24 Javascript
jquery跨域请求示例分享(jquery发送ajax请求)
Mar 25 Javascript
js加密解密字符串可自定义密码因子
May 13 Javascript
jQuery实现获取元素索引值index的方法
Sep 18 Javascript
js实现移动端编辑添加地址【模仿京东】
Apr 28 Javascript
如何理解Vue的作用域插槽的实现原理
Aug 19 Javascript
最实用的JS数组函数整理
Dec 05 Javascript
JavaScript 扩展运算符用法实例小结【基于ES6】
Jun 17 Javascript
vue实现放大镜效果
Sep 17 Javascript
从原生JavaScript到React深入理解
Jul 23 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
Syphon 使用方法
2021/03/03 冲泡冲煮
解析CI的AJAX分页 另类实现方法
2013/06/27 PHP
通过php添加xml文档内容的方法
2015/01/23 PHP
mac系统下安装多个php并自由切换的方法详解
2017/04/21 PHP
一些常用的Javascript函数
2006/12/22 Javascript
iis6+javascript Add an Extension File
2007/06/13 Javascript
jQuery EasyUI API 中文文档 可调整尺寸
2011/09/29 Javascript
九种js弹出对话框的方法总结
2013/03/12 Javascript
火狐textarea输入法的bug的触发及解决
2013/07/24 Javascript
jQuery操作select下拉框的text值和value值的方法
2014/05/31 Javascript
jQuery 删除或是清空某个HTML元素示例
2014/08/04 Javascript
js行号显示的文本框实现效果(兼容多种浏览器 )
2015/10/23 Javascript
JS创建事件的三种方法(实例代码)
2016/05/12 Javascript
JavaScript 对象详细整理总结
2016/09/29 Javascript
详解从买域名到使用pm2部署node.js项目全过程
2018/03/07 Javascript
十分钟教你上手ES2020新特性
2020/02/12 Javascript
在vue中实现嵌套页面(iframe)
2020/07/30 Javascript
vue 使用饿了么UI仿写teambition的筛选功能
2021/03/01 Vue.js
[04:14]从西雅图到上海——玩家自制DOTA2主题歌曲应援TI9
2019/07/11 DOTA
python根据给定文件返回文件名和扩展名的方法
2015/03/27 Python
进一步探究Python的装饰器的运用
2015/05/05 Python
使用Django Form解决表单数据无法动态刷新的两种方法
2017/07/14 Python
python语言中with as的用法使用详解
2018/02/23 Python
ubuntu上安装python的实例方法
2019/09/30 Python
Python利用matplotlib绘制约数个数统计图示例
2019/11/26 Python
css3截图_动力节点Java学院整理
2017/07/11 HTML / CSS
Notino芬兰:购买香水和化妆品
2019/04/15 全球购物
办公室文员工作自我评价
2013/12/01 职场文书
商务会议邀请函
2014/01/09 职场文书
庆元旦广播稿
2014/02/10 职场文书
家长寄语大全
2014/04/02 职场文书
五一劳动节慰问信
2015/02/14 职场文书
政协委员个人总结
2015/03/03 职场文书
统招统分证明
2015/06/23 职场文书
Python中三种花式打印的示例详解
2022/03/19 Python
默认网关不可用修复后过一会又不好使了解决方法
2022/04/08 数码科技