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 相关文章推荐
表单填写时用回车代替TAB的实现方法
Oct 09 Javascript
json-lib出现There is a cycle in the hierarchy解决办法
Feb 24 Javascript
使用jquery实现简单的ajax
Jul 08 Javascript
jquery制作多功能轮播图插件
Apr 02 Javascript
jQuery采用连缀写法实现的折叠菜单效果
Sep 18 Javascript
JavaScript jQuery 中定义数组与操作及jquery数组操作
Dec 18 Javascript
javascript类型系统 Array对象学习笔记
Jan 09 Javascript
JavaScript动态检验密码强度的实现方法
Nov 09 Javascript
Angular浏览器插件Batarang介绍及使用
Feb 07 Javascript
微信小程序自定义组件传值 页面和组件相互传数据操作示例
May 05 Javascript
详解vue beforeRouteEnter 异步获取数据给实例问题
Aug 09 Javascript
从零开始用webpack构建一个vue3.0项目工程的实现
Sep 24 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
风格模板初级不完全修改教程
2006/10/09 PHP
PHP 长文章分页函数 带使用方法,不会分割段落,翻页在底部
2009/10/22 PHP
php记录日志的实现代码
2011/08/08 PHP
PHP设计模式之代理模式的深入解析
2013/06/13 PHP
解析PHP汉字转换拼音的类
2013/06/18 PHP
codeigniter自带数据库类使用方法说明
2014/03/25 PHP
ThinkPHP模板判断输出Defined标签用法详解
2014/06/30 PHP
set_exception_handler函数在ThinkPHP中的用法
2014/10/31 PHP
php集成动态口令认证
2016/07/21 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
2017/02/04 PHP
javascript利用控件对windows的操作实现原理与应用
2012/12/23 Javascript
无闪烁更新网页内容JS实现
2013/12/19 Javascript
js 动态修改css文件的方法
2014/08/05 Javascript
node.js中的console用法总结
2014/12/15 Javascript
JavaScript制作简易的微信打飞机
2015/03/31 Javascript
jQuery实用技巧必备(上)
2015/11/02 Javascript
js实现模拟银行卡账号输入显示效果
2015/11/18 Javascript
javascript实现下拉提示选择框
2015/12/29 Javascript
jquery UI Datepicker时间控件冲突问题解决
2016/12/16 Javascript
几种tab切换详解
2017/02/03 Javascript
jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
2017/04/28 jQuery
使用jQuery mobile NuGet让你的网站在移动设备上同样精彩
2019/06/18 jQuery
vue离开当前页面触发的函数代码
2020/09/01 Javascript
python将图片文件转换成base64编码的方法
2015/03/14 Python
Python使用scrapy抓取网站sitemap信息的方法
2015/04/08 Python
使用Python的Treq on Twisted来进行HTTP压力测试
2015/04/16 Python
python简单实现基数排序算法
2015/05/16 Python
Python中标准库OS的常用方法总结大全
2017/07/19 Python
意大利文具和办公产品在线商店:Y-Office
2020/02/27 全球购物
捐书寄语赠言
2014/01/18 职场文书
什么是就业协议书
2014/04/17 职场文书
小班下学期评语
2014/05/04 职场文书
惹女朋友生气检讨书
2015/05/06 职场文书
红色经典观后感
2015/06/18 职场文书
windows安装python超详细图文教程
2021/05/21 Python
实例详解Python的进程,线程和协程
2022/03/13 Python