zoukankan      html  css  js  c++  java
  • qTip2

    qTip2 精致的jQuery提示信息插件

    2012-02-16 22:31 by 囧月, 1029 visits, 收藏编辑

    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

    结尾

    关于qTip2就介绍到这里,更多信息请参阅以下链接:

    官方网站:http://craigsworks.com/projects/qtip2/

    在线演示:http://craigsworks.com/projects/qtip2/demos/

    官方文档:http://craigsworks.com/projects/qtip2/docs/

    最后,放一个简单的DEMO

    作者:囧月
    出处:http://lwme.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

    随笔分类 -JavaScript

    qTip2 精致的jQuery提示信息插件

    2012-02-16 22:31 by 囧月, 1138 visits, 网摘收藏编辑
    摘要:qTip2是一个灰常强大且精致的jQuery提示信息插件,是qTip的第2版,也是一个全新的版本,提供了丰富的功能及漂亮的外观,非常易于使用。 qTip2采用了MIT/GPLv2许可,官方网站为:h... 阅读全文

    JavaScript/jQuery 表单美化插件

    2012-02-14 11:16 by 囧月, 192 visits, 网摘收藏编辑
    摘要:用过一些表单美化的工具,觉得不错,特地分享一下。包括Niceforms,Uniform,Formly,Ideal Forms,jqTransform等... 阅读全文

    Fancy Validate 与 jQuery.validate 对比(中):应用篇

    2012-02-13 21:37 by 囧月, 814 visits, 网摘收藏编辑
    摘要:续上一篇对比了Fancy Validate与jQuery.validate的参数及规则,本篇通过实际应用来比较两者的异同。 在表单元素属性中定义验证规则 jQuery.validate支持以下几种... 阅读全文

    Fancy Validate 与 jQuery.validate 对比(上):参数及规则

    2012-02-12 20:40 by 囧月, 96 visits, 网摘收藏编辑
    摘要:继上一篇简单介绍了一下Fancy Validate,说到Fancy Validate模仿了jQuery.validate,本文来详细罗列一下两者的异同。 对JavaScript Library的依赖... 阅读全文

    jQuery UI Autocomplete 体验

    2012-02-12 15:09 by 囧月, 1736 visits, 网摘收藏编辑
    摘要:jQuery UI Autocomplete是jQuery UI的自动完成组件,是我用过的最强大、最灵活的Autocomplete,它支持本地的Array/JSON数组、通过ajax请求的Array/... 阅读全文

    Fancy Validate – JavaScript 表单验证

    2012-02-05 15:36 by 囧月, 993 visits, 网摘收藏编辑
    摘要:用过许多javascript表单验证的工具,比较好用是强大的jQuery.validate等jQuery插件,当然Mootools FormCheck也不错。 在asp.net中的问题 在asp.... 阅读全文

    javascript 文本框水印/占位符(watermark/placeholder)

    2012-01-15 13:12 by 囧月, 1171 visits, 网摘收藏编辑
    摘要:html5为表单元素(type为text/password/search/url/telephone/email)新增了一个placeholder属性,为输入框提供一种提示。Firefox/Chrom... 阅读全文

    动态表单(javascript实现)

    2011-11-02 22:13 by 囧月, 318 visits, 网摘收藏编辑
    摘要:经常遇到一些项目,需要在数据库某些表中增加一些字段;但是这些字段既不用于查询,也不用于统计,仅仅用于显示。这样一来,每次更改就需要改动许多地方,显得非常繁琐。 比较流行的动态表单... 阅读全文

    asp.net/anthem 多级联动简化

    2011-10-10 23:02 by 囧月, 252 visits, 网摘收藏编辑
    摘要:刚好手头有需要用到多级联动的功能,平常写一堆代码用于数据绑定、事件绑定,实在太烦琐了,于是想办法简化一下,也顺便练练手 阅读全文
  • 相关阅读:
    Saltstack module gem 详解
    Saltstack module freezer 详解
    Saltstack module firewalld 详解
    Saltstack module file 详解
    Saltstack module event 详解
    Saltstack module etcd 详解
    Saltstack module environ 详解
    Saltstack module drbd 详解
    Saltstack module dnsutil 详解
    获取主页_剥离百度
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2355657.html
Copyright © 2011-2022 走看看