要实现保持滑块中间的div突出显示,可以使用CSS和JavaScript来实现。
以下是一个示例的解决方法:
HTML代码:
CSS代码:
.slider-container {
overflow: hidden; /* 隐藏溢出部分 */
width: 300px; /* 设置容器宽度 */
height: 200px; /* 设置容器高度 */
}
.slider {
display: flex; /* 使用flex布局 */
flex-wrap: nowrap; /* 子元素不换行 */
transition: transform 0.5s; /* 添加过渡效果 */
}
.slider-item {
flex: 0 0 300px; /* 设置子元素宽度 */
height: 200px; /* 设置子元素高度 */
background-color: #ccc;
margin: 10px; /* 设置子元素间距 */
display: flex;
align-items: center; /* 垂直居中子元素内容 */
justify-content: center; /* 水平居中子元素内容 */
}
.slider-item.active {
background-color: #f00; /* 设置活动项背景色 */
}
JavaScript代码:
const sliderContainer = document.querySelector('.slider-container');
const slider = document.querySelector('.slider');
const sliderItems = document.querySelectorAll('.slider-item');
sliderContainer.addEventListener('scroll', function() {
const containerWidth = sliderContainer.offsetWidth; // 获取容器宽度
const containerScrollLeft = sliderContainer.scrollLeft; // 获取容器滚动距离
sliderItems.forEach(function(item) {
const itemWidth = item.offsetWidth; // 获取子元素宽度
const itemLeft = item.offsetLeft; // 获取子元素相对于容器的左边距
if (itemLeft <= containerWidth / 2 && itemLeft + itemWidth >= containerWidth / 2) {
item.classList.add('active'); // 添加活动项样式
} else {
item.classList.remove('active'); // 移除活动项样式
}
})
});
上述代码中,我们首先使用CSS布局和样式设置了滑块容器和滑块项目的样式。然后使用JavaScript监听滑块容器的滚动事件,根据滚动距离计算活动项的位置,并添加相应的样式。当滑块容器滚动时,活动项会保持在滑块中间突出显示。
上一篇:保持滑块元素与相对位置在同一行
下一篇:保持缓存页面的Bootbox回调