Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/33.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
Javascript Div的动态定位_Javascript_Css_Css Position - Fatal编程技术网

Javascript Div的动态定位

Javascript Div的动态定位,javascript,css,css-position,Javascript,Css,Css Position,我有下面的结构 文本详细信息 显示细节 文本 显示细节 当我按下“现在显示详细信息”时,我希望详细信息显示在与按下的链接相同的高度上。(想象100个文本/链接。) 我已经组装了一个小JSFIDLE,其中元素的绝对位置是可能的,但不知何故,我无法使它基于scrollposition动态工作 我尝试了以下javascript函数来设置位置: var div = document.getElementById('update'); //div.style.top = window.pageYOffs

我有下面的结构

文本详细信息
显示细节

文本
显示细节

当我按下“现在显示详细信息”时,我希望详细信息显示在与按下的链接相同的高度上。(想象100个文本/链接。)

我已经组装了一个小JSFIDLE,其中元素的绝对位置是可能的,但不知何故,我无法使它基于scrollposition动态工作

我尝试了以下javascript函数来设置位置:

var div = document.getElementById('update');
//div.style.top = window.pageYOffset;
//div.style.top = document.body.parentElement.scrollTop;
//div.style.top = document.body.scrollTop;
div.style.top = '100px';

您希望获得单击元素的位置,并将details div移到下面

见:


您注释掉的代码具有非常不同的含义(如果您将scrollTop想象为类似函数,您可以看到它是在document.body上调用的,而不是您单击的元素)。我想我还应该注意到window,pageYOffset是window.scrollY的别名,您可能会找到更多关于它的文档

您希望获得单击元素的位置,并将details div移到下面

见:

您注释掉的代码具有非常不同的含义(如果您将scrollTop想象为类似函数,您可以看到它是在document.body上调用的,而不是您单击的元素)。我想我还应该注意到window,pageYOffset是window.scrollY的别名,您可能会找到更多关于它的文档

使用元素和属性

就这么简单:

function toCurrentPosition(event) {
    var div = document.getElementById('update');
    div.style.top = event.target.offsetTop + "px";
}

注意,我使用的是event而不是href。

使用元素和属性

就这么简单:

function toCurrentPosition(event) {
    var div = document.getElementById('update');
    div.style.top = event.target.offsetTop + "px";
}


请注意,我使用的是event而不是href。

如果您在小提琴中使用jQuery,这里有一个简单的解决方案

JS

HTML


如果您在小提琴中使用jQuery,这里有一个简单的解决方案

JS

HTML


我只是建立了一个简单的JSBin

基本上,我们要做的是首先找出谁打了电话,然后计算它的顶部位置,然后设置要移动的div的顶部位置

HTML:


我只是建立了一个简单的JSBin

基本上,我们要做的是首先找出谁打了电话,然后计算它的顶部位置,然后设置要移动的div的顶部位置

HTML:


正如Itay所说,您可以使用目标信息。另外,如果您通过jQuery绑定事件,而不是在HTML上的每个链接上写入,则会更干净:

HTML:


正如Itay所说,您可以使用目标信息。另外,如果您通过jQuery绑定事件,而不是在HTML上的每个链接上写入,则会更干净:

HTML:


谢谢你的回答,我喜欢你的解决方案。基本上,我的解决方案是,我在测试中遗漏了+“px”。。。我讨厌css…谢谢你的回答,我喜欢你的解决方案。基本上,我的解决方案是,我在测试中遗漏了+“px”。。。我讨厌css…我把ScrollTop想象成这里所说的getter/setter:;-)我本打算使用这个术语,但强调scrollTop的getter-like功能回答了这个问题我本打算使用这个术语,但强调scrollTop的getter功能回答了这个问题。我在一些测试中遗漏了+“px”,这就是为什么它一直不起作用,谢谢你的回答!我在一些测试中遗漏了“+”px”,这就是为什么它一直不起作用,谢谢你的回复!我在一些测试中遗漏了“+”px”,这就是为什么它一直不起作用,谢谢你的回复!我在一些测试中遗漏了“+”px”,这就是为什么它一直不起作用,谢谢你的回复!谢谢你的回复,我知道。在我的项目中,OnClick使用AJAX查询服务器,OnSuccess方法更新div。我只想要一个小例子来证明我不工作的观点。:)谢谢你的回复,我知道。在我的项目中,OnClick使用AJAX查询服务器,OnSuccess方法更新div。我只想要一个小例子来证明我不工作的观点。:)
<div id="holder">
    Long text <br />
    <a href="#">Show Details</a> <br />   
    Long text <br />
    <a href="#">Show Details</a> <br />   
    Long text <br />
    <a href="#">Show Details</a> <br />   
    Long text <br />
    <a href="#">Show Details</a> <br />   
    Long text <br />
    <a href="#">Show Details</a> <br />   
    Long text <br />
    <a href="#">Show Details</a> <br />   
    Long text <br />
    <a href="#">Show Details</a> <br />   
    Long text <br />
    <a href="#">Show Details</a> <br />   
    Long text <br />
    <a href="#">Show Details</a> <br />   
    Long text <br />
    <a href="#">Show Details</a> <br />   
    Long text <br />
    <a href="#">Show Details</a> <br />   
    Long text <br />
    <a href="#">Show Details</a> <br />   
    Long text <br />
    <a href="#">Show Details</a> <br />   
    Long text <br />
    <a href="#">Show Details</a> <br />   
    <div id="update">Itemlist1</div>
</div>
#holder {
    position: relative;
}
#update {
    position: absolute;
    left: 100px;
    top: 0px;
}
<div style="display: inline;
  position: relative;
  float: left;">
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   
    Long text <br />
      <a name="a2" href="#" onclick="toCurrentPosition(this)">Show Details</a>  <br />   


</div>

<div style="display: inline; position : relative;
  float: left;" id="update">
 Itemlist1
 </div>
function toCurrentPosition(ele) {
    var div = document.getElementById('update');
    console.log(ele.offsetTop);
    div.style.top = ele.offsetTop+'px';
}
<div class="my-show-details-list">
    Long text <br />
      <a name="a2">Show Details</a>  <br />  
    Long text <br />
      <a name="a2">Show Details</a>  <br />  
    Long text <br />
      <a name="a2">Show Details</a>  <br />  
    Long text <br />
      <a name="a2">Show Details</a>  <br />  
    Long text <br />
</div>
$(function() {
   //Here you select all the a tags inside the div and you apply them the same event:
    $(".my-show-details-list>a").click(function() {
        var div = document.getElementById('update');
        div.style.top = event.target.offsetTop + "px";
    });
});