qTip2 精致的jQuery提示信息插件

qTip2 精致的jQuery提示信息插件

2012-02-16 22:31 by 囧月, 1651 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

<linkhref="http://craigsworks.com/projects/qtip2/packages/latest/jquery.qtip.min.css"rel="stylesheet"/>

<scriptsrc="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

<scriptsrc="http://craigsworks.com/projects/qtip2/packages/latest/jquery.qtip.min.js"></script>

从官方网站下载最新版本时,可以选择相应的样式及插件;可选的样式包括几种色彩风格(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,

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-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

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

<linkhref="http://craigsworks.com/projects/qtip2/packages/latest/jquery.qtip.min.css"rel="stylesheet"/>

<scriptsrc="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

<scriptsrc="http://craigsworks.com/projects/qtip2/packages/latest/jquery.qtip.min.js"></script>

从官方网站下载最新版本时,可以选择相应的样式及插件;可选的样式包括几种色彩风格(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,

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-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