在这里,我使用jQuery为弹出窗口创建一个js,并做一个小的演示,一个简单的摘要:

位置

取决于当前鼠标的位置,箭头的方向不同。

左上方(左上)(默认),左下(左下),右(右上),右下(右下),上左芳(左上),右上方(右一)、左芳(左下)和右下(右下)。


优先

上述优先级依次降低。

勘探思路

检测的基本思想是:

首先,它也是判断容器高度或宽度是否比窗口相应高度或宽度高两倍的先决条件,因为临界点是目标容器边缘的中点。

*
*确定目标容器的高度或宽度是否是容器的相应高度或宽度与箭头大小之和的两倍,否则报告错误。原因是2倍,因为临界点是目标容器的每一侧的中点。
* /

接下来,您可以根据优先级来逐一判断:

*
*这个想法是,首先检查左边,然后检查左右,然后测试顶部,所有排除,然后考虑底部。当检测左右两侧时,首先要考虑顶部是否可以放下;当测试是上下的时候,左边和右边的距离被考虑。

* 1时。在左边,判断上下距离可以放下箭偏移,还有一个不能放下(例如,顶部),这是最重要的{一},右,右。

* 2。检测时,判断是否偏移距离向下箭头(默认,顶),一个放不下的,是鼠标偏侧(如果左<右,左),为{顶,右箭头},偏移量为0,用鼠标,鼠标左。然后,增加最大偏移量。

*默认在左边,顶部。
* /

具体情况判断:

根据优先级,首先判断鼠标右键是否可以放下窗口:

你可以把它放下,判断你是否能再把它放进箭里。

如果你能放下—

在判断是否向下箭头,包括偏移箭头,如果你可以

上下箭头可以判断-包括偏移量,不会超过目标容器高度左上方。

否则,如果顶部大于窗口的高度和底部向下箭头,包括它的偏移量是左下角。

-否则,确定底部可以放箭头和弹出,是左上角。

-否则,我们基于左下角条件

-如果没有倒下,法官可以把底部的波普和箭头放在一边。

-可以,左上角

-否则,左下角

不能放下,然后左完成,对,同样的想法

八个案件的情况和地位

例如左上
复制代码代码如下所示:
case'top-left:
顶部加箭头大小
This.conObj.css(顶,顶+ tartop);
左/右距离判断
如果(左< arroffset){
靠近左边
This.conObj.css(右,tarleft);
}人(右<如果(conwidth - arroffset)){ / /如果不能支持本身对距离的右侧(conwidth - arroffset),左边的值减小,跟随鼠标的右箭头,与容器对齐
/ /显示正常的左,右也需要减去宽度((conwidth - arroffset)右,左(arroffset)-(conwidth - arroffset)-右),该tarwidth - conwidth
其他思想,靠近右侧,左侧距离,目标血管宽度减去宽度。
This.conObj.css(右,tarwidth - conwidth + tarleft);
}其他左正常显示
This.conObj.css(右,左arroffset + tarleft);
}
打破;

八例箭头的位置和位置

并以左上角为例
复制代码代码如下所示:
case'top-left:
This.arrowObj.prependTo(这个。conobj);
如果此时右键靠近鼠标箭头
如果(conleft = 0(conwidth >(右+ arroffset))){
This.arrowObj.css(右,conwidth权arrowpos);
{人}
This.arrowObj.css(右,arrowpos);
}
打破;

最后,写一些代码中的单词:

写过的代码,在重建N次和写N行之后,我们突然意识到,事实上,无论是编写代码还是生活,我们都已经建立或确立了约定或规范。一旦代码被破坏,常常失败,如果没有,常常很痛。从示例代码到社会,无一例外。