jquery - 改变tipsy工具提示的重力/位置?

时间:2013-09-26 14:53:35

标签: javascript jquery css tipsy

有没有办法编辑醉酒的位置或重力(我不知道什么是正确的)? 插件本身有一些重力选项,您可以通过脚本分配:

nw | n | ne | w | e | sw | s | se

我目前正在使用s位置,正如您在小提琴中看到的那样:http://jsfiddle.net/cnLW8/

但是我想知道Tipsy的位置是否可以按照它在元素中心显示的方式进行编辑。不是在旁边,上方或之外,而是相对靠近中心?

目前,我这样做是通过将.tipsy类的css属性设置为:

.tipsy{
    margin-top: 30px;
}

但我认为有一些更智能的解决方案,可以通过脚本或其他方式进行编辑......

欢迎任何帮助或建议。

1 个答案:

答案 0 :(得分:1)

我还没有能够测试这个,但我认为在tipsy.js中为switch块添加一个新案例就可以了。

我使用s中的数学来添加case z以获取左值,并使用w的数学来获得最高值,结果应该是死中心。只需将案例添加到您的js文件中,然后使用案例z重新加载。

switch (gravity.charAt(0)) {
                case 'n':
                    tp = {top: pos.top + pos.height + this.options.offset, left: pos.left + pos.width / 2 - actualWidth / 2};
                    break;
                case 's':
                    tp = {top: pos.top - actualHeight - this.options.offset, left: pos.left + pos.width / 2 - actualWidth / 2};
                    break;
                case 'e':
                    tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth - this.options.offset};
                    break;
                case 'w':
                    tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width + this.options.offset};
                    break;
                case 'z':
                    tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width / 2 - actualWidth / 2};
                    break;
            }