我想知道如何获得HTML元素的X和Y位置,例如img和divJavaScript.
可有人告诉我如何得到top和left位置的div或者span当没有指定的元素吗?
即:
<span id='11a' style='top:55px;' onmouseover="GetPos(this);">stuff</span>
<span id='12a' onmouseover="GetPos(this);">stuff</span>
Run Code Online (Sandbox Code Playgroud)
在上面,如果我这样做:
document.getElementById('11a').style.top
Run Code Online (Sandbox Code Playgroud)
55px返回值.但是,如果我尝试span'12a',那么什么都不会返回.
我在页面上有一堆div/ span我无法指定top/ left属性,但我需要div直接在该元素下显示.
我正在创建一个标题,一旦滚动到一定数量的像素,它就会修复并保持原位.
我可以使用css和html这样做,还是我也需要jquery?
我已经创建了一个演示,所以你可以理解.任何帮助都会很棒!
body{
margin:0px;
padding:0px;
}
.clear{
clear:both;
}
.container{
height:2000px;
}
.cover-photo-container{
width:700px;
height: 348px;
margin-bottom: 20px;
background-color:red;
}
.small-box{
width:163px;
height:100px;
border:1px solid blue;
float:left;
}
.sticky-header{
width:700px;
height:50px;
background:orange;
postion:fixed;
}
Run Code Online (Sandbox Code Playgroud) 我有一个div设置为css类float,浮点数为:
.float {
display:block;
position:fixed;
top: 20px;
left: 0px;
z-index: 1999999999;
}
* html .float {position:absolute;}
Run Code Online (Sandbox Code Playgroud)
此类使元素保持在页面上的固定位置(*html部分使其在IE中工作).我正在使用javascript水平和垂直移动元素的位置.
我需要在javascript中获取div相对于浏览器窗口的绝对位置(div的浏览器窗口顶部和左侧有多少像素).现在,我使用以下内容:
pos_left = document.getElementById('container').offsetLeft;
pos_top = document.getElementById('container').offsetTop;
Run Code Online (Sandbox Code Playgroud)
上面的代码适用于IE,Chrome和FF,但在Opera中,它们都返回0.我需要一个适用于所有这些浏览器的解决方案.有任何想法吗?
顺便说一句:跟踪javascript所做的更改是可能的,但由于性能原因,这不是我要寻找的解决方案.另外,我没有使用jquery.
我想获取某个元素相对于整个页面的位置,但该元素位于可滚动容器中,这使得通常使用的方法无用。(谈论getBoundingClientRect(),offsetTop等等)
作为我的意思的一个例子: https ://material.angular.io/cdk/drag-drop/overview
在“基本拖放”部分中,如果您在不滚动页面的情况下获取元素的 Y 位置,则会得到 626element.getBoundingClientRect().top
现在,如果向下滚动,使该元素几乎接触到窗口顶部,则对于相同的完全相同的元素,您会得到 70
但我想要的是相对于整个页面完全相同的值,因此滚动后该值不应该改变。我知道默认滚动行为就是这种情况,但在这种情况下,主体不会滚动,但它的元素会滚动。
javascript ×5
html ×4
css ×3
dom ×2
fixed ×1
header ×1
jquery ×1
offset ×1
position ×1
positioning ×1