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个文件吧,至少官方演示很正常:
|
1
2
3
|
<link href="http://craigsworks.com/projects/qtip2/packages/latest/jquery.qtip.min.css" rel="stylesheet" />
|
从官方网站下载最新版本时,可以选择相应的样式及插件;可选的样式包括几种色彩风格(Colour Styles)、CSS3相关样式如圆角;以及以下各种插件,可根据自己需要选择:
- Ajax,这个不用说,请求远程内容的
- Tips,气泡对话效果,如箭头
- Modal,模态对话框效果,如jQuery UI Dialog / ThickBox 的效果
- Image map,提供对map内area标记的提示支持
- SVG,对SVG元素提供提示的支持
- BGIFrame,用于IE6这种古董,如遮住select控件等
除了以上插件的功能外,它的主要功能有(仅列出较常用的):
- 设置提示的内容、标题、关闭按钮等
- 使用元素的属性,来作为提示信息内容,如链接的标题(<a title="提示信息")、图片的提示(<img src="提示信息")等等
- 提示信息显示的位置
- 提示信息的目标,即显示到什么元素上
- 提示信息显示/隐藏触发的事件,如鼠标移到元素上、点击(mouseenter,click)
- 提示信息显示/隐藏的效果
- 外观的定义,通过相应样式设置
- 跟随可拖动目标、鼠标指针等
使用方法
以下就简单演示一些使用方法
创建一个最简单的提示:
|
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,
width: false,
height: false,
// tip插件,箭头相关设置
tip: {
corner: true,
mimic: false,
width: 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-shadow、ui-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) {
//...
}
}
}
}); |
结尾
关于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, 网摘, 收藏, 编辑JavaScript/jQuery 表单美化插件
2012-02-14 11:16 by 囧月, 192 visits, 网摘, 收藏, 编辑Fancy Validate 与 jQuery.validate 对比(中):应用篇
2012-02-13 21:37 by 囧月, 814 visits, 网摘, 收藏, 编辑Fancy Validate 与 jQuery.validate 对比(上):参数及规则
2012-02-12 20:40 by 囧月, 96 visits, 网摘, 收藏, 编辑jQuery UI Autocomplete 体验
2012-02-12 15:09 by 囧月, 1736 visits, 网摘, 收藏, 编辑Fancy Validate – JavaScript 表单验证
2012-02-05 15:36 by 囧月, 993 visits, 网摘, 收藏, 编辑javascript 文本框水印/占位符(watermark/placeholder)
2012-01-15 13:12 by 囧月, 1171 visits, 网摘, 收藏, 编辑动态表单(javascript实现)
2011-11-02 22:13 by 囧月, 318 visits, 网摘, 收藏, 编辑asp.net/anthem 多级联动简化
2011-10-10 23:02 by 囧月, 252 visits, 网摘, 收藏, 编辑qTip2是一个灰常强大且精致的jQuery提示信息插件,是qTip的第2版,也是一个全新的版本,提供了丰富的功能及漂亮的外观,非常易于使用。
qTip2采用了MIT/GPLv2许可,官方网站为:http://craigsworks.com/projects/qtip2/,目前还没发布一个稳定版,Nightly版本经常会更新,当然这并不影响正常使用。
若不放心可以尝试旧版的qTip,但在一些参数上会有所不同;若是从qTip升级到qTip2,可以使用官方提供的转换工具来升级你的代码:http://craigsworks.com/projects/qtip2/converter/。
如果使用时出现问题,那么直接下载以下3个文件吧,至少官方演示很正常:
|
1
2
3
|
<link href="http://craigsworks.com/projects/qtip2/packages/latest/jquery.qtip.min.css" rel="stylesheet" />
|
从官方网站下载最新版本时,可以选择相应的样式及插件;可选的样式包括几种色彩风格(Colour Styles)、CSS3相关样式如圆角;以及以下各种插件,可根据自己需要选择:
- Ajax,这个不用说,请求远程内容的
- Tips,气泡对话效果,如箭头
- Modal,模态对话框效果,如jQuery UI Dialog / ThickBox 的效果
- Image map,提供对map内area标记的提示支持
- SVG,对SVG元素提供提示的支持
- BGIFrame,用于IE6这种古董,如遮住select控件等
除了以上插件的功能外,它的主要功能有(仅列出较常用的):
- 设置提示的内容、标题、关闭按钮等
- 使用元素的属性,来作为提示信息内容,如链接的标题(<a title="提示信息")、图片的提示(<img src="提示信息")等等
- 提示信息显示的位置
- 提示信息的目标,即显示到什么元素上
- 提示信息显示/隐藏触发的事件,如鼠标移到元素上、点击(mouseenter,click)
- 提示信息显示/隐藏的效果
- 外观的定义,通过相应样式设置
- 跟随可拖动目标、鼠标指针等
使用方法
以下就简单演示一些使用方法
创建一个最简单的提示:
|
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,
width: false,
height: false,
// tip插件,箭头相关设置
tip: {
corner: true,
mimic: false,
width: 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-shadow、ui-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) {
//...
}
}
}
}); |
结尾
关于qTip2就介绍到这里,更多信息请参阅以下链接:
官方网站:http://craigsworks.com/projects/qtip2/
在线演示:http://craigsworks.com/projects/qtip2/demos/
官方文档:http://craigsworks.com/projects/qtip2/docs/
最后,放一个简单的DEMO。