Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jQuery显示相对于另一个元素的元素_Jquery_Dhtml_Css Position - Fatal编程技术网

使用jQuery显示相对于另一个元素的元素

使用jQuery显示相对于另一个元素的元素,jquery,dhtml,css-position,Jquery,Dhtml,Css Position,我正在开发一个界面,要求用户可以单击按钮,然后我将显示相对于按钮定位的浮动div(您可以将其视为单击下拉菜单上的向下箭头时显示的区域) 如何将此浮动元素正确定位到单击的按钮附近(可能位于页面上的任何位置) 提前谢谢 您可以获取按钮的位置 例如: $("#myButton").click(function() { var o = $(this).offset(); $("#myDiv").css({'position': 'absolute','left':o.left,'top',o.t

我正在开发一个界面,要求用户可以单击按钮,然后我将显示相对于按钮定位的浮动div(您可以将其视为单击下拉菜单上的向下箭头时显示的区域)

如何将此浮动元素正确定位到单击的按钮附近(可能位于页面上的任何位置)


提前谢谢

您可以获取按钮的位置

例如:

$("#myButton").click(function() {
  var o = $(this).offset();
  $("#myDiv").css({'position': 'absolute','left':o.left,'top',o.top});
});
这将把它放在按钮的正上方,只需根据您想要的位置调整左/顶部

例如,要将其放置在按钮下方,请将顶部更改为
'top':o.top+$(this).height()
或按钮右侧:
'left':o.left+$(this).width()

和Javascript:

$("#btn").click(function() {
  var sel = $("#select");
  var pos = $("#btn").offset();
  if (sel.is(":hidden")) {
    sel.attr({
      top: pos.top + 20,
      left: pos.left
    });
    sel.show();
  } else {
    sel.hide();
  }
});

基本上,您可以绝对定位浮动div以将其从正常流中移除,然后使用来确定将其放置在与按钮相关的位置。

如果元素按层次定位,您应该使用.offset()获取并设置位置

例如2

<input type="button" id="myButton" value="Choose Something" 
     style="position: absolute; top: 100px;" />
<div style="position: absolute; top: 200px;">parent div
    <div id="myDiv" style="position: absolute; top: 20px;">child div</div>
</div>

$("#myButton").click(function () {
    var o = $(this).offset();
    $("#myDiv").offset({
        'left': o.left,
        'top': o.top - 20
    });
});

上级部门
儿童部
$(“#我的按钮”)。单击(函数(){
var o=$(this.offset();
美元(“#myDiv”)。抵销({
“左”:o左,
“top”:o.top-20
});
});
这是一把小提琴:

$("#btn").click(function() {
  var sel = $("#select");
  var pos = $("#btn").offset();
  if (sel.is(":hidden")) {
    sel.attr({
      top: pos.top + 20,
      left: pos.left
    });
    sel.show();
  } else {
    sel.hide();
  }
});
<input type="button" id="myButton" value="Choose Something" 
     style="position: absolute; top: 100px;" />
<div style="position: absolute; top: 200px;">parent div
    <div id="myDiv" style="position: absolute; top: 20px;">child div</div>
</div>

$("#myButton").click(function () {
    var o = $(this).offset();
    $("#myDiv").offset({
        'left': o.left,
        'top': o.top - 20
    });
});