qTip2 精致的jQuery提示信息插件

来源:互联网 发布:数模转换器单片机程序 编辑:程序博客网 时间:2024/04/29 17:55

http://www.cnblogs.com/lwme/archive/2012/02/16/qtip2-jquery-plugin.html

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

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

简介

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

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

<link href="http://craigsworks.com/projects/qtip2/packages/latest/jquery.qtip.min.css" rel="stylesheet" /><script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script><script src="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. 跟随可拖动目标、鼠标指针等

使用方法

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

创建一个最简单的提示:

$("#demo2").qtip({content: "这是提示内容(by囧月)"});
创建一个带标题的提示:

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

带关闭按钮的提示:

$("#demo3").qtip({content: {text: "这是提示内容(by囧月 lwme.cnblogs.com)", title: {text: "提示标题", button: "关闭"}}});

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

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

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

$('img[alt]').qtip({content: {attr: 'alt'}});

使用AJAX请求远程:

$("#demo4").qtip({content: {text: "加载中...",ajax: {url: "lwmeAtCnblogs.aspx?name=囧月"}}});

设置位置及样式:

$("#demo5").qtip({position: {my: 'bottom left',at: 'top center'},style: {classes: 'ui-tooltip-red'}});

点击时出现模态对话框:

$('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});
页面加载完成时显示,且不会自动隐藏:

$('button').qtip({content: "这是提示内容(by囧月 lwme.cnblogs.com)",show: {ready: true},hide: false});

参数设置

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

$.fn.qtip.defaults = {// 页面加载完成就创建提示信息的元素prerender: false,// 为提示信息设置id,如设置为myTooltip// 就可以通过ui-tooltip-myTooltip访问这个提示信息id: false,// 每次显示提示都删除上一次的提示overwrite: true,// 通过元素属性创建提示// 如a[title],把原有的title重命名为oldtitlesuppress: 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}},// 隐藏提示的相关设置// 参考showhide: {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}};

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

$.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'};

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

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

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

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

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

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

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

$('.selector').qtip({content: {text: 'Loading...', // Loading text...ajax: {url: '/path/to/file', // URL to the JSON scripttype: 'GET', // POST or GETdata: { id: 3 }, // Data to pass along with your requestdataType: 'json', // Tell it we're retrieving JSONsuccess: 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。



原创粉丝点击