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 DataSet数据源处理代码
Mar 29 Javascript
JQuery触发radio或checkbox的change事件
Dec 18 Javascript
Jquery模仿Baidu、Google搜索时自动补充搜索结果提示
Dec 26 Javascript
详解addEventListener的三个参数之useCapture
Mar 16 Javascript
javascript数组克隆简单实现方法
Dec 16 Javascript
基于Angularjs+mybatis实现二级评论系统(仿简书)
Feb 13 Javascript
Vue.js列表渲染绑定jQuery插件的正确姿势
Jun 29 jQuery
微信小程序 循环及嵌套循环的使用总结
Sep 26 Javascript
基于Bootstrap实现城市三级联动
Nov 23 Javascript
Vue.js实现分页查询功能
Nov 15 Javascript
解决angular 使用原生拖拽页面卡顿及表单控件输入延迟问题
Apr 21 Javascript
js代码编写无缝轮播图
Sep 13 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
收音机发烧友应当熟知的100条知识
2021/03/02 无线电
PHP Class&amp;Object -- 解析PHP实现二叉树
2013/06/25 PHP
php session劫持和防范的方法
2013/11/12 PHP
如何让搜索引擎抓取AJAX内容解决方案
2014/08/25 PHP
php删除文本文件中重复行的方法
2015/04/28 PHP
Zend Framework动作助手Redirector用法实例详解
2016/03/05 PHP
PHP MVC框架skymvc支持多文件上传
2016/05/26 PHP
jquery 入门教程 [翻译] 推荐
2009/08/17 Javascript
javascript 面向对象编程 聊聊对象的事
2009/09/17 Javascript
Javascript变量函数浅析
2011/09/02 Javascript
游览器中javascript的执行过程(图文)
2012/05/20 Javascript
Js+Flash实现访问剪切板操作
2012/11/20 Javascript
网页防止tab键的使用快速解决方法
2013/11/07 Javascript
JQuery跳出each循环的方法
2015/04/16 Javascript
在HTML中插入JavaScript代码的示例
2015/06/03 Javascript
JS中的数组方法笔记整理
2016/07/26 Javascript
jquery属性,遍历,HTML操作方法详解
2016/09/17 Javascript
jQuery事件用法详解
2016/10/06 Javascript
单击按钮发送验证码,出现倒计时的简单实例
2017/03/17 Javascript
seajs模块压缩问题与解决方法实例分析
2017/10/10 Javascript
angularJs 表格添加删除修改查询方法
2018/02/27 Javascript
深入浅出 Vue 系列 -- 数据劫持实现原理
2019/04/23 Javascript
js实现简单掷骰子效果
2019/10/24 Javascript
Vue项目中Api的组织和返回数据处理的操作
2019/11/04 Javascript
JavaScript实现简单进度条效果
2020/03/25 Javascript
javascript使用正则表达式实现注册登入校验
2020/09/23 Javascript
python实现爬虫抓取小说功能示例【抓取金庸小说】
2019/08/09 Python
python可视化实现KNN算法
2019/10/16 Python
TensorFlow实现打印每一层的输出
2020/01/21 Python
Python run()函数和start()函数的比较和差别介绍
2020/05/03 Python
银行求职推荐信范文
2013/11/30 职场文书
小学生班会演讲稿
2014/01/09 职场文书
大二自我鉴定
2014/01/31 职场文书
纠纷协议书
2014/04/16 职场文书
2015年学校消防安全工作总结
2015/10/14 职场文书
JavaScript中10个Reduce常用场景技巧
2022/06/21 Javascript