gpt4 book ai didi

javascript - 如何在 jQuery 中获取溢出元素的可见高度

转载 作者:行者123 更新时间:2023-11-28 13:18:24 26 4
gpt4 key购买 nike

我有一个溢出的元素在调用函数之前是隐藏的。我试图确定鼠标是否在我设置 overflow: visible; 之后 悬停在这个溢出 Material 上,但相反,它告诉我我的鼠标悬停在溢出 Material 上内容,即使它仍然不可见。

有没有办法在 jQuery 中检查可见高度?这是我正在尝试的:

    off = $(curSub).offset();
xSubStart = parseInt(off.left);
ySubStart = parseInt(off.top);
xSubEnd = xSubStart + parseInt($(curSub).width());
ySubEnd = ySubStart + parseInt($(curSub).height());

if ( (x >= xStart && x <= xEnd && y >= yStart && y <= yEnd) ||
(x >= xSubStart && x <= xSubEnd && y >= ySubStart && y <= ySubEnd) ) {
// display menu
$(cur).css('overflow', 'visible');
match = true;
}

xStart、xEnd、yStartyEnd 变量在该代码上方定义并且工作正常。我认为问题在于 jQuery 函数 width()、height()、outerWidth()outerHeight() 不测试元素是否可见.

有什么办法可以实现吗?我考虑过使用 topleft 规范将它从物理上从隐藏移动到可见,但我认为如果可能的话,这种方式会更清晰。

希望有人知道答案。

最佳答案

问题是 JavaScript 在执行您的下一行代码之前没有完成操作。

你可以使用回调函数:

var setHoverAfterOverFlowVisible = function(cur, callback) {
$(cur).css('overflow', 'visible');
match = true;
//other stuff

callback();
}

setHoverAfterOverFlowVisible(cur, /*hoverFunction*/);

有关回调的更多信息:http://www.impressivewebs.com/callback-functions-javascript/

关于javascript - 如何在 jQuery 中获取溢出元素的可见高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14844172/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com