我正在尝试创建一个下拉菜单,我需要检测子菜单的核心位置。这就是我用jquery缩进它的方法:
function changeSubcat(catid){
var position = $('#menuparent_'+catid).position();
position.left = position.left - 180;
$('#menu_'+catid).css("left", position.left);
}
真正的问题是它只适用于我工作的大小窗口,显而易见,所以我需要优化它以适应其他维度。首先我认为我应该使用另一种方法而不是position()
,但我找不到更好的方法。很抱歉没有提供HTML代码,但它有点毛茸茸。
答案 0 :(得分:2)
我不明白为什么你要同时左右使用边距来定位元素。仅使用
function changeSubcat(catid) {
var position = $('#menuparent_'+catid).position();
// maybe add a little something to position.top to make the menus not overlap
$('#menu_'+catid).position(position);
}
应该有效。有时我发现position()
不起作用,您也可以尝试offset()
。在极少数情况下,我也遇到了position()
和offset()
的问题,在这种情况下,您可以使用$('#menuparent_'+catid)[0].offsetTop
和$('#menuparent_'+catid)[0].offsetLeft
来获取和设置位置。
编辑:顺便说一下,你不必解析position.left或者right,因为它们已经是整数。
答案 1 :(得分:0)
据我所见,您只想定位掉落的元素。为什么你要使用JS呢?不会the pure CSS solution解决您的问题?