在单独的列中触发内容更改?

x33g5p2x  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(258)

我一直在寻找一种解决方案,以实现类似的目标:

其工作方式是,单击或悬停在左侧列中的一个标题上,将在右侧列中显示不同的文本。
我想的解决方案是,我将使用带旋转木马的列表项来实现这一点。但我被困在如何做到这一点上,需要一些指导。我在别处似乎找不到类似的东西。
到目前为止我所处的位置-https://codepen.io/mattrees92/pen/kkmmmmv

<div class="container">
<div class="row">
<div class="col-lg-4">
  <li> Test 1 </li>
  <li> Test 2 </li>
  <li> Test 3 </li>
  <li> Test 4 </li>
</div>
<div class="col-lg-8">
  <div id="owl-example" class="owl-carousel">
    <div> pjiojifgjiojdiofjgodfjogjidofjiogjdiojgofjdogjfiojiodjgiofjgiodjfoijgiodfjiogjoidfjgiojdiofjgiojdifojgiodjfiogjiodjfgioj</div>
    <div> Your Content </div>
    <div> Your Content </div>
    <div> Your Content </div>
    <div> Your Content </div>
    <div> Your Content </div>
    <div> Your Content </div>
  </div>
</div>
html {
padding-top: 50px;
}

li {
list-style: none;
}

$(document).ready(function () {
$("#owl-example").owlCarousel({
items: 1,
});
});

干杯

fjaof16o

fjaof16o1#

有多种方法可以实现你想要的。其中一个(我想说的最简单/最直接)就是使用javascript和 index 锿。
所以如果你继续 1st 列表项 1st 文本项应该是可见的。等等
检查下面的代码。我正在使用数组和eventlisteners
仅供参考。使用时 li 元素,将它们 Package 在 ul 要素

const listItems = document.querySelectorAll('ul li')
// turn nodeList returned by querySelectorAll into array using spread operator
// we will need array to get the index of the hovered element.
const arrListItems = [...listItems]
const list = document.querySelector('ul')
const textItems = document.querySelectorAll('.text div')
// add mouseover event listener
list.addEventListener('mouseover', (event) => handleHover(event))
const handleHover = (event) => {
// get index of the hovered element
  const index = arrListItems.indexOf(event.target)
  // remove class show-me from all items
  textItems.forEach(item => item.classList.remove('show-me'))
  // check if there is a textItem with the specific index
  // add ' show-me ' className to the item with the same index as the hovered list item
  textItems[index] &&
    textItems[index].classList.add("show-me");
}
.wrapper {
  display: flex;
  flex-wrap: wrap;
}

ul {
  margin: 0 15px;
  padding: 0;
}

.text div {
  visibility: hidden;
}

.text div.show-me {
  visibility: visible;
}
<div class="wrapper">
  <ul>
    <li> Test 1 </li>
    <li> Test 2 </li>
    <li> Test 3 </li>
    <li> Test 4 </li>
  </ul>
  <div class="text">
    <div> Your Content 1</div>
    <div> Your Content 2</div>
    <div> Your Content 3</div>
    <div> Your Content 4</div>
    <div> Your Content </div>
    <div> Your Content </div>
  </div>
</div>

相关问题