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 相关文章推荐
让焦点自动跳转
Jul 01 Javascript
Mootools 1.2教程 Fx.Tween的使用
Sep 15 Javascript
Javascript 中的类和闭包
Jan 08 Javascript
JS定时器实例
Apr 17 Javascript
js 剪切板的用法(clipboardData.setData)与js match函数介绍
Nov 19 Javascript
Javascript MVC框架Backbone.js详解
Sep 18 Javascript
JavaScript常用脚本汇总(三)
Mar 04 Javascript
node.js插件nodeclipse安装图文教程
Oct 19 Javascript
jquery解析XML及获取XML节点名称的实现代码
May 18 Javascript
vue路由教程之静态路由
Sep 03 Javascript
Vue实现点击导航栏当前标签后变色功能
Aug 19 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
Jan 07 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 COOKIE设置为浏览器进程
2009/06/21 PHP
ThinkPHP中U方法的使用浅析
2014/06/13 PHP
golang、python、php、c++、c、java、Nodejs性能对比
2017/03/12 NodeJs
PHP面向对象五大原则之接口隔离原则(ISP)详解
2018/04/04 PHP
php 可变函数使用小结
2018/06/12 PHP
ext jquery 简单比较
2010/04/07 Javascript
jquery1.9 下检测浏览器类型和版本的方法
2013/12/26 Javascript
Express.JS使用详解
2014/07/17 Javascript
node.js中的fs.futimes方法使用说明
2014/12/17 Javascript
jQuery实现在textarea指定位置插入字符或表情的方法
2015/03/11 Javascript
基于jQuery实现的菜单切换效果
2015/10/16 Javascript
jQuery form插件之ajaxForm()和ajaxSubmit()的可选参数项对象
2016/01/23 Javascript
Angularjs使用指令做表单校验的方法
2017/03/31 Javascript
JavaScript中正则表达式判断匹配规则及常用方法
2017/08/03 Javascript
Angular设置别名alias的方法
2018/11/08 Javascript
javascript防抖函数debounce详解
2019/06/11 Javascript
js实现简易计算器功能
2019/10/18 Javascript
js实现无缝轮播图特效
2020/05/09 Javascript
vue 解决兄弟组件、跨组件深层次的通信操作
2020/07/27 Javascript
[09:23]国际邀请赛采访专栏:iG战队VK,Tongfu战队Cu
2013/08/05 DOTA
Python3实现连接SQLite数据库的方法
2014/08/23 Python
Python 模块EasyGui详细介绍
2017/02/19 Python
django_orm查询性能优化方法
2018/08/20 Python
python简单操作excle的方法
2018/09/12 Python
解决pycharm工程启动卡住没反应的问题
2019/01/19 Python
Python3.4学习笔记之列表、数组操作示例
2019/03/01 Python
Python3实现飞机大战游戏
2020/04/24 Python
使用python实现微信小程序自动签到功能
2020/04/27 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
2020/05/22 Python
Pycharm及python安装详细教程(图解)
2020/07/31 Python
波兰在线运动商店:YesSport
2020/07/23 全球购物
个人函授自我鉴定
2014/03/25 职场文书
高中生班主任评语
2014/04/25 职场文书
关于旅游的活动方案
2014/08/15 职场文书
社区精神文明建设汇报材料
2014/08/17 职场文书
检讨书格式
2015/05/07 职场文书