zoukankan      html  css  js  c++  java
  • qTip2 精致的jQuery提示信息插件

    qTip2 精致的jQuery提示信息插件    出处:http://www.cnblogs.com/lwme/archive/2012/02/16/qtip2-jquery-plugin.html

    2012-02-16 22:31 by 囧月, 7764 阅读, 8 评论, 收藏编辑

    qTip2是一个灰常强大且精致的jQuery提示信息插件,是qTip的第2版,也是一个全新的版本,提供了丰富的功能及漂亮的外观,非常易于使用。

    qTip2采用了MIT/GPLv2许可,官方网站为:http://craigsworks.com/projects/qtip2/,目前还没发布一个稳定版,Nightly版本经常会更新,当然这并不影响正常使用。

    简介

    若不放心可以尝试旧版的qTip,但在一些参数上会有所不同;若是从qTip升级到qTip2,可以使用官方提供的转换工具来升级你的代码:http://craigsworks.com/projects/qtip2/converter/

    如果使用时出现问题,那么直接下载以下3个文件吧,至少官方演示很正常:

    从官方网站下载最新版本时,可以选择相应的样式及插件;可选的样式包括几种色彩风格(Colour Styles)、CSS3相关样式如圆角;以及以下各种插件,可根据自己需要选择:

    1. Ajax,这个不用说,请求远程内容的
    2. Tips,气泡对话效果,如箭头
    3. Modal,模态对话框效果,如jQuery UI Dialog / ThickBox 的效果
    4. Image map,提供对map内area标记的提示支持
    5. SVG,对SVG元素提供提示的支持
    6. BGIFrame,用于IE6这种古董,如遮住select控件等

    除了以上插件的功能外,它的主要功能有(仅列出较常用的):

    1. 设置提示的内容、标题、关闭按钮等
    2. 使用元素的属性,来作为提示信息内容,如链接的标题(<a title="提示信息")、图片的提示(<img src="提示信息")等等
    3. 提示信息显示的位置
    4. 提示信息的目标,即显示到什么元素上
    5. 提示信息显示/隐藏触发的事件,如鼠标移到元素上、点击(mouseenter,click)
    6. 提示信息显示/隐藏的效果
    7. 外观的定义,通过相应样式设置
    8. 跟随可拖动目标、鼠标指针等

    使用方法

    以下就简单演示一些使用方法

    创建一个最简单的提示

    1
    2
    3
    $("#demo2").qtip({
      content: "这是提示内容(by囧月)"
    });

    创建一个带标题的提示:

    1
    2
    3
    4
    5
    6
    $("#demo3").qtip({
      content: {
        text: "这是提示内容(by囧月 lwme.cnblogs.com)"
        , title: "提示标题"
      }
    });

    带关闭按钮的提示:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    $("#demo3").qtip({
      content: {
        text: "这是提示内容(by囧月 lwme.cnblogs.com)"
        , title: {
          text: "提示标题"
          , button: "关闭"
        }
      }
    });

    使用元素的属性作为提示信息:

    1
    2
    3
    $("a[title]").qtip(); //从链接的title
    $("img[alt]").qtip(); //从img的alt
    $("div[title]").qtip(); //从div的title

    也可以显式指定元素属性作为提示信息:

    1
    2
    3
    4
    5
    $('img[alt]').qtip({
       content: {
          attr: 'alt'
       }
    });

    使用AJAX请求远程:

    1
    2
    3
    4
    5
    6
    7
    8
    $("#demo4").qtip({
      content: {
        text: "加载中...",
        ajax: {
          url: "lwmeAtCnblogs.aspx?name=囧月"
        }
      }
    });

    设置位置及样式:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    $("#demo5").qtip({
      position: {
        my: 'bottom left',
        at: 'top center'
      },
      style: {
        classes: 'ui-tooltip-red'
      }
    });

    点击时出现模态对话框:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    $('button').qtip({
      content: "这是提示内容(by囧月 lwme.cnblogs.com)",
      show: {
        event: 'click', // Show it on click...
        solo: true, // ...and hide all other tooltips...
        modal: true // ...and make it modal
      },
      hide: false
    });
    页面加载完成时显示,且不会自动隐藏:
    1
    2
    3
    4
    5
    6
    7
    $('button').qtip({
      content: "这是提示内容(by囧月 lwme.cnblogs.com)",
      show: {
        ready: true
      },
      hide: false
    });

    参数设置

    先看一下qTip2默认的参数设置:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    $.fn.qtip.defaults = {
       // 页面加载完成就创建提示信息的元素
       prerender: false,
       // 为提示信息设置id,如设置为myTooltip
       // 就可以通过ui-tooltip-myTooltip访问这个提示信息
       id: false,
       // 每次显示提示都删除上一次的提示
       overwrite: true,
       // 通过元素属性创建提示
       // 如a[title],把原有的title重命名为oldtitle
       suppress: true,
       // 内容相关的设置
       content: {
          // 提示信息的内容
          // 如果只设置内容可以直接 content: "提示信息"
          // 而不需要 content: { text: { "提示信息" } }
          text: true,
          // 提示信息使用的元素属性
          attr: 'title',
          // ajax插件
          ajax: false,
          title: {
             // 提示信息的标题
             // 如果只设置标题可以直接 title: "标题"
             text: false,
             // 提示信息的关闭按钮
             // 如button:"x",button:"关闭"
             // 都可以启用关闭按钮
             button: false
          }
       },
       // 位置相关的设置
       position: {
          // 提示信息的位置
          // 如提示的目标元素的右下角(at属性)
          // 对应 提示信息的左上角(my属性)
          my: 'top left',
          at: 'bottom right',
          // 提示的目标元素,默认为选择器
          target: FALSE,
          // 提示信息默认添加到的容器
          container: FALSE,
          // 使提示信息在指定目标内可见,不会超出边界
          viewport: FALSE,     
          adjust: {
             // 提示信息位置偏移
             x: 0, y: 0,
             mouse: TRUE,   //是否跟随鼠标移动
             resize: TRUE,
             method: 'flip flip'
          },
          // 特效
          effect: function(api, pos, viewport) {
             $(this).animate(pos, {
                duration: 200,
                queue: FALSE
             });
          }
       },
       // 显示提示的相关设置
       show: {
          // 触发事件的目标元素
          // 默认为选择器
          target: false,
          // 事件名称,默认为鼠标移到时
          // 可以改为click点击
          event: 'mouseenter',
          // 特效
          effect: true,
          // 延迟显示时间
          delay: 90,
          // 隐藏其他提示
          solo: false,
          // 在页面加载完就显示提示
          ready: false,
          modal: {
             // 启用模态对话框效果
             on: false,
             // 特效
             effect: true,
             blur: true,
             escape: true
          }
       },
       // 隐藏提示的相关设置
       // 参考show
       hide: {
          target: false,
          event: 'mouseleave',
          effect: true,
          delay: 0,
          // 设置为true时,不会隐藏
          fixed: false,
          inactive: false,//毫秒,当不发生任何操作时隐藏
          leave: 'window',
          distance: false  //数字,距离鼠标移开的距离而隐藏
       },
       // 样式相关
       style: {
          // 样式名称
          classes: '',
          widget: false,
           false,
          height: false,
          // tip插件,箭头相关设置
          tip: {
             corner: true,
             mimic: false,
              8,
             height: 8,
             border: true,
             offset: 0
          }
       },
       // 相关事件绑定
       events: {
          render: null,
          move: null,
          show: null,
          hide: null,
          toggle: null,
          visible: null,
          focus: null,
          blur: null
       }
    };

    看起来是很多,但是使用频率最高的估计也就以下这些参数:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    $.fn.qtip.defaults = {
       content: {
          text: true,
          attr: 'title',
          ajax: false,
          title: {
             text: false,
             button: false
          }
       },
       position: {
          my: 'top left',
          at: 'bottom right',
       },
       show: {
          event: 'mouseenter',
          solo: false,
          ready: false,
          modal: false
       },
       hide: {
          event: 'mouseleave'
       },
       style: 'ui-tooltip-default'
    };

    对于显示的位置,有以下参数可以设置:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    my = [
    'top left', 'top right', 'top center',
    'bottom left', 'bottom right', 'bottom center',
    'right center', 'right top', 'right bottom',
    'left center', 'left top', 'left bottom', 'center'
    ]
    at = [
    'bottom left', 'bottom right', 'bottom center',
    'top left', 'top right', 'top center',
    'left center', 'left top', 'left bottom',
    'right center', 'right top', 'right bottom', 'center'
    ]

    而对于显示的色彩风格则有以下各种颜色:

    1
    ['red', 'blue', 'dark', 'light', 'green','jtools', 'plain', 'youtube', 'cluetip', 'tipsy', 'tipped']

    比如red就是ui-tooltip-red,默认为default。另外还有ui-tooltip-shadowui-tooltip-rounded分别表示阴影、圆角效果,可以叠加,如下:

    1
    2
    3
    4
    5
    6
    $("#demo2").qtip({
      content: "这是提示内容(by囧月)"
      , style: {
        classes: 'ui-tooltip-red ui-tooltip-shadow ui-tooltip-rounded'
      }
    });

    另外对于ajax则有以下主要参数可以设置(与jQuery.ajax一致):

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $('.selector').qtip({
       content: {
          text: 'Loading...', // Loading text...
          ajax: {
             url: '/path/to/file', // URL to the JSON script
             type: 'GET', // POST or GET
             data: { id: 3 }, // Data to pass along with your request
             dataType: 'json', // Tell it we're retrieving JSON
             success: function(data, status) {
              //...
             }
          }
       }
    });
    需要注意的是,AJAX默认使用GET请求而且启用了cache
  • 相关阅读:
    SQL Server中的sysobjects
    SQL:事务(1)
    继续探究HTML与CSS:图像映射
    SQL:事务(2)
    找工作?该复习了!(转)
    继续探究HTML与CSS:!important 和 @import 规则
    JAVA数据结构:二叉树
    SQL:Like 通配符及特殊用法Escape
    JavaScript高级程序设计:在HTML中使用JavaScript
    一个有趣的时钟
  • 原文地址:https://www.cnblogs.com/rainbow661314/p/3212609.html
Copyright © 2011-2022 走看看