如何计算坐标以将元素保留在用户屏幕的区域中
How to calculate coordinates to keep element in the user screen's region
我需要在坐标e.pageX
上添加一个绝对元素,并e.pageY
其中e
是传递给mouseover
回调函数的event
对象。
这不是问题:
element.css({
'position': 'absolute',
'z-index': 300,
'left': e.pageX,
'top': e.pageY
});
问题是新元素可以放置在当前用户的屏幕之外,因此他们需要滚动页面才能查看相应的元素。
如何检查边界并进行适当的计算以使其显示在用户屏幕的区域?
您知道任何现成的解决方案吗,或者我应该自己考虑定制解决方案吗?
你可以做这样的事情
var left = e.pageX;
var top = e.pageY;
var right = $( window ).width();
var bottom = $( window ).height();
var elwidth = element.offsetWidth; /* assuming "element" is an element reference */
var elheight = element.offsetHeight; /* assuming "element" is an element reference */
if ((e.pageX + elwidth) > right) {
left = e.pageX - ((e.pageX + elwidth) - right);
}
if ((e.pageY + elheight) > bottom) {
top = e.pageY - ((e.pageY + elheight) - bottom);
}
element.css({
'position': 'absolute',
'z-index': 300,
'left': left,
'top': top
});
相关文章:
- jqxNumberInput 强制用户在数字值前面保留 (-) 负号
- 如何在新选项卡中打开弹出窗口,但将用户保留在呼叫者选项卡上
- 余烬.当用户刷新网站时,保留下拉菜单中的选择
- 添加一些值,以便在用户更改该服务器时将其作为占位符输入并保留它
- jQuery clone() 将用户数据保留在输入字段中
- 如何在浏览器中为每个用户仅保留一个选项卡或页面
- 保留 Azure 移动服务的自定义 API 调用的用户身份验证
- JQuery 从第二个零开始播放 html5 视频,但如果用户暂停视频,则保留当前帧
- 如何计算坐标以将元素保留在用户屏幕的区域中
- 跨用户控件属性设置和保留值
- 当用户附加文件时,如何保留以前的表单条目
- 如何创建一个简单的选项卡面板,用户可以在刷新或更新后保留在当前选项卡上-jquery,php
- 即使用户选择“取消”,我如何保留FileDialog输入值?(ASP.Net/Javascript)
- 允许用户单击关闭select2并保留自由文本
- 如果用户按下回车键或在外部单击,则保留元素的新html值
- 在用户选中和取消选中复选框后保留文本框值
- 提交后,将用户输入文本保留在输入框中
- 表单文本字段默认在焦点处消失,用户输入保留在表单更正处
- 需要保留从用户输入的文本区域到电子邮件正文的换行符
- 保留jquery选项的值,保存用户的值