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 相关文章推荐
转换json格式的日期为Javascript对象的函数
Jul 13 Javascript
jQuery新闻滚动插件 jquery.roller.js
Jun 27 Javascript
利用JQuery和Servlet实现跨域提交请求示例分享
Feb 12 Javascript
Javascript 赋值机制详解
Nov 23 Javascript
Lab.js初次使用笔记
Feb 28 Javascript
EasyUI实现第二层弹出框的方法
Mar 01 Javascript
js实现大转盘抽奖游戏实例
Jun 24 Javascript
js轮播图透明度切换(带上下页和底部圆点切换)
Apr 27 Javascript
JavaScript使用indexOf()实现数组去重的方法分析
Sep 04 Javascript
layui对工具条进行选择性的显示方法
Sep 19 Javascript
微信小程序vant弹窗组件的实现方式
Feb 21 Javascript
javascript this指向相关问题及改变方法
Nov 19 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对MySQL的缓冲查询和无缓冲查询
2016/07/01 PHP
在php的yii2框架中整合hbase库的方法
2018/09/20 PHP
extjs 的权限问题 要求控制的对象是 菜单,按钮,URL
2010/03/09 Javascript
javascript中字符串的定义示例代码
2013/12/19 Javascript
node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法
2014/11/20 Javascript
JQuery中DOM事件绑定用法详解
2015/06/13 Javascript
详解如何构建Angular项目目录结构
2017/07/13 Javascript
node.js中使用Export和Import的方法
2017/09/18 Javascript
基于vue2.0的活动倒计时组件countdown(附源码下载)
2018/10/09 Javascript
手写Vue弹窗Modal的实现代码
2019/09/11 Javascript
Vue.directive 实现元素scroll逻辑复用
2019/11/29 Javascript
vue实现整屏滚动切换
2020/06/29 Javascript
Vue实现购物车基本功能
2020/11/08 Javascript
vue 动态添加的路由页面刷新时失效的原因及解决方案
2021/02/26 Vue.js
[50:28]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs KG
2018/04/01 DOTA
Python模块结构与布局操作方法实例分析
2017/07/24 Python
Python微信操控itchat的方法
2019/05/31 Python
softmax及python实现过程解析
2019/09/30 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
2019/11/19 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
2019/12/18 Python
Python OpenCV读取显示视频的方法示例
2020/02/20 Python
详解tensorflow2.x版本无法调用gpu的一种解决方法
2020/05/25 Python
浅谈keras中自定义二分类任务评价指标metrics的方法以及代码
2020/06/11 Python
numpy的Fancy Indexing和array比较详解
2020/06/11 Python
Python中logger日志模块详解
2020/08/04 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
2020/11/20 Python
浅谈CSS3中display属性的Flex布局的方法
2017/08/14 HTML / CSS
HTML5实现一个能够移动的小坦克示例代码
2013/09/02 HTML / CSS
澳大利亚家用电器在线商店:Billy Guyatts
2020/05/05 全球购物
农民工工资承诺书范文
2014/03/31 职场文书
人事任命书格式
2014/06/05 职场文书
合同意向书范本
2014/07/30 职场文书
党员对照检查材料思想汇报(党的群众路线)
2014/09/24 职场文书
教师批评与自我批评心得体会
2014/10/16 职场文书
2016年会开场白台词
2015/06/01 职场文书
电工生产实习心得体会
2016/01/22 职场文书