弹框位置跟随for循环的每一项的上方
时间: 2023-07-02 21:21:11 浏览: 35
您可以在for循环的每一项后面添加一个弹框,并使用JavaScript动态计算弹框的位置,使其位于每一项的上方。具体方法如下:
1. 在for循环中添加一个div元素作为弹框,并设置其样式为display:none,表示一开始不显示。
2. 给每一项添加一个事件,当鼠标悬停在该项上时,显示对应的弹框。
3. 在事件处理函数中,使用JavaScript计算弹框的位置,使其位于当前项的上方。可以使用getBoundingClientRect()方法获取当前项的坐标,再设置弹框的top和left属性。
以下是一个示例代码:
HTML代码:
```
<div>
<ul>
<li onmouseover="showTooltip(this)">Item 1</li>
<li onmouseover="showTooltip(this)">Item 2</li>
<li onmouseover="showTooltip(this)">Item 3</li>
</ul>
<div class="tooltip"></div>
</div>
```
CSS代码:
```
.tooltip {
position: absolute;
display: none;
background-color: #fff;
border: 1px solid #ccc;
padding: 5px;
}
```
JavaScript代码:
```
function showTooltip(item) {
var tooltip = document.querySelector('.tooltip');
tooltip.textContent = 'Tooltip for ' + item.textContent;
tooltip.style.display = 'block';
var rect = item.getBoundingClientRect();
tooltip.style.top = rect.top - tooltip.offsetHeight + 'px';
tooltip.style.left = rect.left + 'px';
}
```
在这个示例中,当鼠标悬停在每一项上时,会显示对应的弹框,并将弹框的内容设置为该项的文本。使用getBoundingClientRect()方法获取当前项的坐标,再将弹框的top属性设置为当前项上方的位置,left属性设置为当前项的左边界位置。