目录
Set the Position of an Element using JavaScript
使用 JavaScript 设置元素的位置
设置元素的位置:
- 选择该元素并将其位置属性设置为
absolute
。 - 使用该
top
属性设置元素的垂直位置,例如
box.style.top = '150px'
. - 使用该
left
属性设置元素的水平位置,例如
box.style.left = '150px'
.
以下是本文示例的 HTML。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> </head> <body> <div id="box" style="background-color: salmon; width: 100px; height: 100px"> Box 1 </div> <script src="index.js"></script> </body> </html>
这是相关的 JavaScript 代码。
const box = document.getElementById('box'); box.style.position = 'absolute'; box.style.top = '150px'; box.style.left = '150px'; console.log(box.style.top); // 👉️ "150px" console.log(box.style.left); // 👉️ "150px"
我们首先将元素的
位置设置为
absolute
。
absolute
时,它会从正常的文档流中移除。元素的最终位置由top
、right
和
属性bottom
的值确定。left
、top
和属性对非定位元素没有影响right
。bottom
left
我们将元素的top
CSS 属性设置为150px
,它指定到元素包含块的上边缘的距离。
然后我们使用left
属性设置到元素包含块左边缘的距离。
function positionElement(el, x, y) { el.style.position = 'absolute'; el.style.left = x + 'px'; el.style.top = y + 'px'; } const box = document.getElementById('box'); console.log(positionElement(box, 50, 150)); console.log(box.style.left); // 👉️ "50px" console.log(box.style.top); // 👉️ "150px"
该函数将元素、x
和y
位置作为参数,将元素的position
属性设置为absolute
并对其进行定位。
单击时将元素置于鼠标下方
要在单击时将元素定位在鼠标下方:
- 将元素的
position
属性设置为absolute
。 - 向对象添加
click
事件侦听器document
。 - 每次单击鼠标时,将元素的
top
和left
属性设置为鼠标的坐标。
这是下一个示例的 HTML。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> </head> <body> <div id="box" style="background-color: salmon; width: 100px; height: 100px"> Box 1 </div> <script src="index.js"></script> </body> </html>
这是相关的 JavaScript 代码。
const box = document.getElementById('box'); box.style.position = 'absolute'; document.addEventListener('click', function handleClick(event) { box.style.top = event.clientY - 50 + 'px'; box.style.left = event.clientX - 50 + 'px'; });
We added a click
event listener on the document
object, which invokes a
function anytime the document
is clicked.
event
object to get the coordinates of the mouse when the event
is dispatched.Your requirements may vary, but to position the element in the center of the
cursor, we subtracted 50
from the
clientY
and
clientX
coordinates.
The clientY
property provides the vertical coordinate at which the event
occurred.
And the clientX
property provides the horizontal coordinate at which the
MouseEvent
event occurred.