欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

qTip2 Position

程序员文章站 2022-07-16 08:35:10
...

@author YHC

概述:

qTip使用特殊的定位系统,使用角,在这些基础的概念的背后非常简单,当你去读的时候,你会觉得实际上它变成了简单的英语.如下例子,比如说,我们想定位qTip的my为left top(左上角)

at在我们的目标元素的右下角(bottom right),非常简单,让我们来看看代码包含一下这些:

$('.selector').qtip({
	content: 'I\'m positioned using corner values!',
	position: {
		my: 'top left',  // Position my top left...
		at: 'bottom right', // at the bottom right of...
		target: $('.selector') // my target
	}
});
qTip2 Position

如何阅读以下对象,你看见这些逻辑简单的英语出现,比使用x和y坐标简单的多,上图的所有可用角落值可以用在position.my和position.at选项上,以及qTips插件的corner和

mimic选项上;

注意:这个系统主要是基于jQuery UI Position插件

target:false

概述:

HTML元素qTips将要相对于它定位,也可以设置为'mouse'和'event'(在目标位置触发qTip提示),或者是一个数组,包含一个在页面上的绝对x/y位置;

如果你也将position.adjust.mouse设置为true,qTip提示将一直跟随鼠标,直到在hide target(隐藏目标)上的hide event事件的触发,

示例:

让我们来相对定位我们的qTip在我们的文档中的第一个UL元素随后一个LI元素

$('.selector').qtip({
	content: {
		text: 'I\'m positioned in relation to a different element'
	},
	position: {
		target: $('ul:first li:last')
	}
});
我们也可以定位qTip相对于鼠标,所以这个qTip在显示的时候将给定一个鼠标的x/y坐标.

$('.selector').qtip({
	content: {
		text: 'I\'m positioned in relation to the mouse'
	},
	position: {
		target: 'mouse'
	}
});
也可以定位相同的qTip相对于多个目标元素,使用hide/show几个元素,在非常方便的情况下,你可以使用类似的qTip在一个页面的几个元素

$('.selector').qtip({
	content: {
		text: 'I position to whatever show target triggered me.'
	},
	position: {
		target: 'event'
	},
	show: {
		target: $('.selector, .selectorTwo')
	},
	hide: {
		target: $('.selector, .selectorTwo')
	}
});
最后一个要点:绝对定位通过一个x/y的数组,例如以下qTip,左边和上面都举例页面10px

$('.selector').qtip({
	content: {
		text: 'I\'m absolutely positioned, but still work with the viewport property!'
	},
	position: {
		target: [10, 10]
	}
});
注意:设置这个为false会引起qTip相对定位的元素的.qtip()方法被调用;

当你使用绝对定位[(x/y)]的时候,position.viewport任然起作用;

my:"top left"

概述

这个角是qTip相对于position.at的位置,请见最上面的图,里面有所角的可用值;

示例:

让我们创建一个qTip,定位于我们目标的left center;

$('.selector').qtip({
	content: {
		text: 'My center left corner is positioned next to my target'
	},
	position: {
		my: 'left center'
	}
});
注意:请见最上面的图查看所有可用值;

at:"bottom right"

概述

这个角是,position.target的元素定位提示信息的位置,请见最上面的图查看所有角可用值;

示例:

让我们创建一个qTip,定位到我们目标的左上角:

$('.selector').qtip({
	content: {
		text: 'I\'m positioned as the top left of my target'
	},
	position: {
		at: 'top left'
	}
});
注意:请见上图查看所有可用值;

container:document.body

概述

解决了qTip附加到html元素中,例如这个容器元素:

示例:

让我们附加我们的qTip到用户自定义"tooltips"容器中:

$('.selector').qtip({
	content: {
		text: 'I\'m appended within a custom tooltips DIV'
	},
	position: {
		container: $('div.tooltips')
	}
});
注意:如果容器元素内容超过容器边界(overflow)设置其他所有为可见(visible),这将显示qtip的可见,

viewport:false

概述
viewport用来保持qTip可见,例如某个元素超过边界qTip在所有时间将必须保持可见,如果将它的值设置为true将从position.container属性继承

示例:

让一个qTip试图保持在window viewport内部,根据需要调整定位角落:

$('.selector').qtip({
	content: {
		text: 'If I go off-screen, my positioning corners will adjust. Resize your browser window to see!'
	},
	position: {
		viewport: $(window)
	}
});
注意:当使用这个功能的时候你的position.corner选项将被临时调整;

effect:function side(){}

概述:

决定效果类型,他发生在一个工具提示位置的动画,一个自定义方法可以被使用,传入的一个新的position是它的一个参数,它的范围在qTip元素

示例:

让我们创建一个qTip,让他滑动到屏幕的这个位置,easing使用linear效果

$('.selector').qtip({
	content: {
		text: 'When my position is updated I slide into place. Nifty huh?'
	},
	position: {
		effect: function(api, pos, viewport) {
			// "this" refers to the tooltip
			$(this).animate(pos, {
				duration: 600,
				easing: 'linear',
				queue: false //设置这个为false,不会影响到show/hide动画效果
			});
		}
	}
});
我们也可以禁用默认的动画效果,传入false

$('.selector').qtip({
	content: {
		text: 'I don\'t slide like the rest of them...'
	},
	position: {
		effect: false
	}
});
默认的动画回调函数:

function(api, pos, viewport) { $(this).animate(pos, { duration: 200, queue: FALSE }); }
注意:默认自定义,产生动画效果,使用上面列出的自定义函数

使用动画"queue"选项可以消除,它的问题是hiding/showing的同时还需要重新定位,这也许还有其他的副作用,如果使用你将会遇到问题

adjust.x:0

概述:

一个正数或者一个负数的像素值,来设置qTip的水平面偏移量,例如X轴负数将减少他的值,将qTip向左移动;

示例

让我们稍微调整我们的qTip的位置向右偏移10px

$('.selector').qtip({
	content: {
		text: 'My position is adjusted by 10px on the horizontal'
	},
	position: {
		adjust: {
			x: 10
		}
	}
});
注意:当前选项仅仅只是支持px值,所有其他单位忽略

adjust.y:0

概述:

一个正数或者一个负数的像素值,来设置qTip的垂直面偏移,例如Y轴,负数值将减少他的值,将qTip向上移动

示例:

让我们稍微调整我们的qTip位置,向上偏移12px:

$('.selector').qtip({
	content: {
		text: 'My position is adjusted by -12px on the vertical'
	},
	position: {
		adjust: {
			y: -12
		}
	}
});
注意:当前这个选项仅仅只是支持px单位,其他所有单位忽略

adjust.method:"flip" //这个稍后更新

adjust.mouse:true

概述:

当position.target设置为mouse,这个选项决定qTip是否跟随鼠标,当鼠标悬停在show.target目标上的时候

示例:

让我们是qTip跟随我们的鼠标:当其可见的时候

$('.selector').qtip({
	content: {
		text: 'I follow the mouse whilst I\'m visible. Weeeeee!'
	},
	position: {
		target: 'mouse',
		adjust: {
			mouse: true  // 可以省略(默认行为)
		}
	}
});
二者选其一,我们能将该参数设置为false,假设鼠标的位置出现时使qTip不跟随鼠标,类是于定位右键和上下文菜单;

$('.selector').qtip({
	content: {
		text: '我的位置在鼠标的下面,当第一次显示的时候,但是我一直停留在那里,......'
	},
	position: {
		target: 'mouse',
		adjust: {
			mouse: false
		}
	}
});
注意:仅仅只是用于当position.target设置为mouse的时候

adjust.resize:true

概述:

决绝当窗体大小改变的时候如果qTip的位置调整;

示例:

设置这个选项为true,当窗体大小改变的时候,调整qTip的位置:

$('.selector').qtip({
	content: {
		text: 'If you resize your window while I\'m visible, I\'ll adjust my position accordingly.'
	},
	position: {
		adjust: {
			target: $(document),
			resize: true // Can be ommited (e.g. default behaviour)
		}
	}
});
另一种方案,设置这个选项为false来放置他的位置变更:

$('.selector').qtip({
	content: {
		text: 'Sadly... 我不能响应窗体的resize事件 :('
	},
	position: {
		target: $(document),
		adjust: {
			resize: false
		}
	}
});
注意:该选项仅仅只是在position.target是window或者是document的时候生效,否则不起任何的作用

@author YHC 查看原文

如果以上有错误信息,请指出thanks!