原生水平列表选择中心元素id并在屏幕上显示的方法可以通过以下步骤实现:
具体实现步骤如下:
示例代码如下(假设水平列表的父容器id为"horizontal-list"):
<!DOCTYPE html>
<html>
<head>
<style>
#horizontal-list {
display: flex;
justify-content: center;
}
.list-item {
margin: 10px;
padding: 10px;
border: 1px solid black;
}
</style>
</head>
<body>
<div id="horizontal-list">
<div class="list-item" id="item1">Item 1</div>
<div class="list-item" id="item2">Item 2</div>
<div class="list-item" id="item3">Item 3</div>
<div class="list-item" id="item4">Item 4</div>
<div class="list-item" id="item5">Item 5</div>
</div>
<script>
// 获取水平列表的所有元素
const itemList = document.querySelectorAll('.list-item');
// 计算水平列表的中心位置
const listWidth = document.getElementById('horizontal-list').offsetWidth;
const centerPosition = listWidth / 2;
// 初始化最小距离和中心元素id
let minDistance = Infinity;
let centerElementId = '';
// 遍历所有元素,计算每个元素相对于中心位置的距离
itemList.forEach(item => {
const itemWidth = item.offsetWidth;
const itemLeftOffset = item.offsetLeft;
const itemCenterPosition = itemLeftOffset + itemWidth / 2;
const distance = Math.abs(itemCenterPosition - centerPosition);
// 找到距离最近的元素,更新最小距离和中心元素id
if (distance < minDistance) {
minDistance = distance;
centerElementId = item.id;
}
});
// 在屏幕上显示中心元素id
const centerElement = document.getElementById(centerElementId);
centerElement.innerHTML = `中心元素:${centerElementId}`;
</script>
</body>
</html>
以上代码会根据水平列表的布局,计算出中心元素的id,并将其显示在屏幕上。请注意,这只是一个简单的示例,实际应用中可能需要根据具体情况进行适当的修改和优化。
领取专属 10元无门槛券
手把手带您无忧上云