用js和css写的英雄联盟人物的小页面,点击每个小的头像图片出来的是同样的详情页面,求解答😭😭

用js和css写的英雄联盟人物的小页面,点击每个小的头像图片出来的是同样的详情页面,求解答😭😭

img

img

配置的href的url都是一样的吧

你在详情页输出一下localStorage,看看id有没有变

【以下回答由 GPT 生成】

这个问题可以通过使用JavaScript和CSS来解决。下面是具体的解决方案:

  1. 首先,给每个小头像图片设置一个唯一的标识符,比如使用data属性。可以在HTML代码中添加一个data属性作为标识符,例如data-id:
<p class="md_img_container"><img class="md_img" src="" alt="img" align="left" data-id="1" /></p> 
<p></p> 
<p></p> 
<p class="md_img_container"><img class="md_img" src="" alt="img" align="left" data-id="2" /></p> 
<p></p> 
  1. 使用JavaScript代码来监听每个小头像图片的点击事件,并根据点击的头像图片的标识符显示对应的详情页面。可以使用事件委托的方式,将事件监听器绑定到整个页面的父元素上,然后根据点击的元素进行判断。具体的代码如下:
// 获取所有小头像图片的父元素
const mdImgContainer = document.getElementsByClassName('md_img_container')[0];

// 监听点击事件
mdImgContainer.addEventListener('click', (event) => {
  // 判断点击的是否为小头像图片
  if (event.target.classList.contains('md_img')) {
    // 获取点击的头像图片的标识符
    const id = event.target.getAttribute('data-id');

    // 根据标识符显示对应的详情页面
    displayDetailsPage(id);
  }
});

// 根据标识符显示对应的详情页面
function displayDetailsPage(id) {
  // 根据id进行相应的处理,例如展示对应的信息或者跳转到其他页面
  console.log("显示详情页面:" + id);
}
  1. 编写CSS样式来控制详情页面的显示与隐藏。可以通过添加CSS类来控制详情页面的可见性。具体的代码如下:
.details-page {
  display: none;
}

.details-page.active {
  display: block;
}

在HTML代码中添加对应的详情页面元素,并添加.details-page类,例如:

<div class="details-page" id="details-page-1">
  <h1>详情页面1</h1>
  <p>这是详情页面1的内容</p>
</div>

<div class="details-page" id="details-page-2">
  <h1>详情页面2</h1>
  <p>这是详情页面2的内容</p>
</div>
  1. 更新JavaScript代码,在displayDetailsPage函数中根据id添加或移除.active类,控制对应的详情页面的显示与隐藏。具体的代码如下:
function displayDetailsPage(id) {
  // 根据id进行相应的处理,例如展示对应的信息或者跳转到其他页面

  // 先隐藏所有详情页面
  const detailsPages = document.getElementsByClassName('details-page');
  for (let i = 0; i < detailsPages.length; i++) {
    detailsPages[i].classList.remove('active');
  }

  // 根据id显示对应的详情页面
  const detailsPage = document.getElementById('details-page-' + id);
  detailsPage.classList.add('active');
}

现在,当点击不同头像图片时,会显示对应的详情页面。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^